home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / misc / tasm / tasmtabs.doc < prev   
Text File  |  1996-09-05  |  97KB  |  2,619 lines

  1. TASM TABLES  Version 2.9                                   Page 1
  2.  
  3.  
  4. 6502 INSTRUCTIONS AND ADDRESSING MODES
  5.  
  6. The acceptable 6502 opcode mnemonics for TASM are as follows:
  7.  
  8.          ADC  AND  ASL  BCC  BCS  BEQ  BNE  BMI  BPL  BVC  BVS  BIT
  9.          BRK  CLC  CLD  CLI  CLV  CMP  CPX  CPY  DEC  DEX  DEY  EOR
  10.          INC  INX  INY  JMP  JSR  LDA  LDX  LDY  LSR  NOP  ORA  PHA
  11.          PHP  PLA  PLP  ROL  ROR  RTI  RTS  SBC  SEC  SED  SEI  STA
  12.          STX  STY  TAX  TAY  TSX  TXA  TXS  TYA
  13.  
  14. TASM  also  supports the following instructions that are part of the
  15. Rockwell  R65C02  and  R65C00/21  microprocessor  instruction  sets.
  16. Those  that  are  marked  as  set A are applicable to the R65C02 and
  17. those marked as set B are  applicable  to  the  R65C00/21  (A+B  for
  18. both):
  19.  
  20.         Mnemonic        Description                Address Mode  Set
  21.         ---------------------------------------------------------------
  22.         ADC             Add with carry             (IND)         A
  23.         AND             And memory with A          (IND)         A
  24.         BIT             Test memory bits with A    ABS,X         A
  25.         BIT             Test memory bits with A    ZP,X          A
  26.         BIT             Test memory bits with A    IMM           A
  27.         CMP             Compare memory with A      (IND)         A
  28.         DEC             Decrement A                A             A
  29.         EOR             Exclusive OR memory with A (IND)         A
  30.         INC             Increment A                A             A
  31.         JMP             Jump                       (ABS,X)       A
  32.         LDA             Load A with memory         (IND)         A
  33.         ORA             OR A with memory           (IND)         A
  34.         SBC             Subtract memory form A     (IND)         A
  35.         STA             Store A in memory          (IND)         A
  36.         STZ             Store zero                 ABS           A
  37.         STZ             Store zero                 ABS,X         A
  38.         STZ             Store zero                 ZP            A
  39.         STZ             Store zero                 ZP,X          A
  40.         TRB             Test and reset memory bit  ABS           A
  41.         TRB             Test and reset memory bit  ZP            A
  42.         TSB             Test and set memory bit    ABS           A
  43.         TSB             Test and set memory bit    ZP            A
  44.  
  45.         BRA             Branch Always              REL           A+B
  46.  
  47.         BBR0            Branch on Bit 0 Reset      ZP,REL        A+B
  48.         BBR1            Branch on Bit 1 Reset      ZP,REL        A+B
  49.         BBR2            Branch on Bit 2 Reset      ZP,REL        A+B
  50.         BBR3            Branch on Bit 3 Reset      ZP,REL        A+B
  51.         BBR4            Branch on Bit 4 Reset      ZP,REL        A+B
  52.         BBR5            Branch on Bit 5 Reset      ZP,REL        A+B
  53.         BBR6            Branch on Bit 6 Reset      ZP,REL        A+B
  54.         BBR7            Branch on Bit 7 Reset      ZP,REL        A+B
  55.  
  56.         BBS0            Branch on Bit 0 Set        ZP,REL        A+B
  57.         BBS1            Branch on Bit 1 Set        ZP,REL        A+B
  58.         BBS2            Branch on Bit 2 Set        ZP,REL        A+B
  59. TASM TABLES  Version 2.9                                   Page 2
  60.  
  61.         BBS3            Branch on Bit 3 Set        ZP,REL        A+B
  62.         BBS4            Branch on Bit 4 Set        ZP,REL        A+B
  63.         BBS5            Branch on Bit 5 Set        ZP,REL        A+B
  64.         BBS6            Branch on Bit 6 Set        ZP,REL        A+B
  65.         BBS7            Branch on Bit 7 Set        ZP,REL        A+B
  66.  
  67.         MUL             Multiply                   Implied       B
  68.  
  69.         PHX             Push Index X               Implied       A+B
  70.         PHY             Push Index Y               Implied       A+B
  71.         PLX             Pull Index X               Implied       A+B
  72.         PLY             Pull Index Y               Implied       A+B
  73.  
  74.         RMB0            Reset Memory Bit 0         ZP            A+B
  75.         RMB1            Reset Memory Bit 1         ZP            A+B
  76.         RMB2            Reset Memory Bit 2         ZP            A+B
  77.         RMB3            Reset Memory Bit 3         ZP            A+B
  78.         RMB4            Reset Memory Bit 4         ZP            A+B
  79.         RMB5            Reset Memory Bit 5         ZP            A+B
  80.         RMB6            Reset Memory Bit 6         ZP            A+B
  81.         RMB7            Reset Memory Bit 7         ZP            A+B
  82.  
  83.         SMB0            Set   Memory Bit 0         ZP            A+B
  84.         SMB1            Set   Memory Bit 1         ZP            A+B
  85.         SMB2            Set   Memory Bit 2         ZP            A+B
  86.         SMB3            Set   Memory Bit 3         ZP            A+B
  87.         SMB4            Set   Memory Bit 4         ZP            A+B
  88.         SMB5            Set   Memory Bit 5         ZP            A+B
  89.         SMB6            Set   Memory Bit 6         ZP            A+B
  90.         SMB7            Set   Memory Bit 7         ZP            A+B
  91.  
  92. Addressing  modes  are denoted as follows:
  93.  
  94.         ABS               Absolute
  95.         ZP                Zero Page
  96.         ABS,X             Absolute X
  97.         ZP,X              Zero Page X
  98.         ABS,Y             Absolute Y
  99.         ZP,Y              Zero Page Y
  100.         A                 Accumulator
  101.         (IND,X)           Indirect X
  102.         (IND),Y           Indirect Y
  103.         (IND)             Indirect
  104.         #IMM              Immediate
  105.         REL               Relative (Branch instructions only)
  106.         ZP,REL            Zero Page, Relative
  107.         Implied           Implied
  108.  
  109. Note  that Zero Page addressing can not be explicitly requested.  It
  110. is used if the value of the operand is  representable  in  a  single
  111. byte for the applicable statements.
  112.  
  113. The '-x' command line option can be  used  to  enable  the  extended
  114. instructions.  A  '-x'  with  no  digit  following  will  enable the
  115. standard set plus both extended sets.  The 6502 version of TASM uses
  116. three bits in the instruction class  mask  to  determine  whether  a
  117. TASM TABLES  Version 2.9                                   Page 3
  118.  
  119. given  instruction  is enabled or not.  Bit 0 enables the basic set,
  120. bit 1 enables set A (R65C02) and bit 2 enables  set  B  (R65C00/21).
  121. The following table shows various options:
  122.  
  123.  
  124.         Class Mask        Enabled Instructions
  125.                         BASIC   R65C02  R65C00/21
  126.         --------------------------------------------
  127.         1               yes     no      no
  128.         2               no      yes     no
  129.         3               yes     yes     no
  130.         4               no      no      yes
  131.         5               yes     no      yes
  132.         6               no      yes     yes
  133.         7               yes     yes     yes
  134.  
  135. Thus,  to enable the basic set plus the R65C02 instructions,  invoke
  136. the '-x3' command line option.
  137.  
  138. See manufacturer's data for  a  more  complete  description  of  the
  139. meaning    of     the     mnemonics    and     addressing     modes.
  140. TASM TABLES  Version 2.9                                   Page 4
  141.  
  142. 8048 INSTRUCTIONS AND ADDRESSING MODES
  143.  
  144. The following list shows the acceptable opcode mnemonics  and  their
  145. corresponding  operand  formats for the 8048 version of TASM.  Where
  146. 'Rn' is seen,  R0 through R7  may  be  substituted.  Other  symbolic
  147. fields are as follows:
  148.  
  149.         SYMBOLIC            DESCRIPTION
  150.         -----------------------------------------------
  151.         <addr8>             Absolute address (8 bits)
  152.         <addr11>            Absolute address (11 bits)
  153.         <immed>             Immediate data
  154.  
  155. Any valid TASM expression can appear in the  place  of  any  of  the
  156. above symbolics.
  157.  
  158. The lines that are marked with an (8041),  (8022),  or (8021) on the
  159. far  right are extended instructions that are available only if a -x
  160. option has  been  invoked  on  the  command  line.  The  classes  of
  161. instructions  (and their bit assignment in the class mask) are shown
  162. below:
  163.  
  164.         BIT     PROCESSOR
  165.         -------------------------------
  166.         0       8X48, 8035, 8039, 8049
  167.         1       8X41A
  168.         2       8022
  169.         3       8021
  170.  
  171. Thus, to enable the basic 8048 set plus the 8022 set, a -x5 could be
  172. used on the command line.
  173.  
  174. Note that some of the base instructions should be disabled  for  the
  175. 8041, 8022, and 8021, but are not.
  176.  
  177. OPCODE  OPERANDS        DESCRIPTION
  178. -------------------------------------------------------------------
  179. ADD     A,Rn            Add Register to Acc
  180. ADD     A,@R0           Add Indirect RAM to Acc
  181. ADD     A,@R1           Add Indirect RAM to Acc
  182. ADD     A,#<immed>      Add Immediate data to Acc
  183.  
  184. ADDC    A,Rn            Add Register to Acc with carry
  185. ADDC    A,@R0           Add Indirect RAM to Acc with carry
  186. ADDC    A,@R1           Add Indirect RAM to Acc with carry
  187. ADDC    A,#<immed>      Add Immediate data to Acc with carry
  188.  
  189. ANL     A,Rn            AND Register to Acc
  190. ANL     A,@R0           AND Indirect RAM to Acc
  191. ANL     A,@R1           AND Indirect RAM to Acc
  192. ANL     A,#<immed>      AND Immediate data to Acc
  193. ANL     BUS,#<immed>    AND Immediate data to BUS
  194. ANL     P1,#<immed>     AND Immediate data to port P1
  195. ANL     P2,#<immed>     AND Immediate data to port P2
  196.  
  197. ANLD    P4,A            AND Acc to Expander port P4
  198. TASM TABLES  Version 2.9                                   Page 5
  199.  
  200. ANLD    P5,A            AND Acc to Expander port P5
  201. ANLD    P6,A            AND Acc to Expander port P6
  202. ANLD    P7,A            AND Acc to Expander port P7
  203.  
  204. CALL    <addr11>        Call subroutine
  205.  
  206. CLR     A               Clear Acc
  207. CLR     C               Clear Carry
  208. CLR     F0              Clear Flag 0
  209. CLR     F1              Clear Flag 1
  210.  
  211. CPL     A               Complement Acc
  212. CPL     C               Complement Carry
  213. CPL     F0              Complement Flag F0
  214. CPL     F1              Complement Flag F1
  215.  
  216. DA      A               Decimal adjust Acc
  217.  
  218. DEC     A               Decrement Acc
  219. DEC     Rn              Decrement Register
  220.  
  221. DIS     I               Disable Interrupts
  222. DIS     TCNTI           Disable Timer/Counter Interrupt
  223.  
  224. DJNZ    Rn,<addr8>      Decrement Register and Jump if nonzero
  225.  
  226. EN      DMA             Enable DMA                           (8041)
  227. EN      FLAGS           Enable Flags                         (8041)
  228. EN      I               Enable External Interrupt
  229. EN      TCNTI           Enable Timer/Counter Interrupt
  230. ENT0    CLK             Enable Clock Output
  231.  
  232. IN      A,DBB           Input Data Bus to Acc                (8041)
  233. IN      A,P0            Input Port 0 to Acc                  (8021)
  234. IN      A,P1            Input Port 1 to Acc
  235. IN      A,P2            Input Port 2 to Acc
  236.  
  237. INC     A               Increment Acc
  238. INC     Rn              Increment Register
  239. INC     @R0             Increment Indirect RAM
  240. INC     @R1             Increment Indirect RAM
  241.  
  242. INS     A,BUS           Strobed Input of Bus to Acc
  243.  
  244. JB0     <addr8>         Jump if Acc bit 0 is set
  245. JB1     <addr8>         Jump if Acc bit 1 is set
  246. JB2     <addr8>         Jump if Acc bit 2 is set
  247. JB3     <addr8>         Jump if Acc bit 3 is set
  248. JB4     <addr8>         Jump if Acc bit 4 is set
  249. JB5     <addr8>         Jump if Acc bit 5 is set
  250. JB6     <addr8>         Jump if Acc bit 6 is set
  251. JB7     <addr8>         Jump if Acc bit 7 is set
  252. JMP     <addr11>        Jump
  253. JC      <addr8>         Jump if Carry is set
  254. JF0     <addr8>         Jump if Flag F0 is set
  255. JF1     <addr8>         Jump if Flag F1 is set
  256. TASM TABLES  Version 2.9                                   Page 6
  257.  
  258. JNC     <addr8>         Jump if Carry is clear
  259. JNI     <addr8>         Jump if Interrupt input is clear
  260. JNIBF   <addr8>         Jump if IBF is clear                 (8041)
  261. JNT0    <addr8>         Jump if T0 is clear
  262. JNT1    <addr8>         Jump if T1 is clear
  263. JNZ     <addr8>         Jump if Acc is not zero
  264. JOBF    <addr8>         Jump if OBF is set                   (8041)
  265. JTF     <addr8>         Jump if Timer Flag is set
  266. JT0     <addr8>         Jump if T0 pin is high
  267. JT1     <addr8>         Jump if T1 pin is high
  268. JZ      <addr8>         Jump if Acc is zero
  269. JMPP    @A              Jump Indirect (current page)
  270.  
  271. MOV     A,PSW           Move PSW to Acc
  272. MOV     A,Rn            Move Register to Acc
  273. MOV     A,T             Move Timer/Counter to Acc
  274. MOV     A,@R0           Move Indirect RAM to Acc
  275. MOV     A,@R1           Move Indirect RAM to Acc
  276. MOV     A,#<immed>      Move Immediate data to Acc
  277. MOV     PSW,A           Move Acc to PSW
  278. MOV     Rn,A            Move Acc to Register
  279. MOV     Rn,#<immed>     Move Immediate data to Register
  280. MOV     STS,A           Move Acc to STS                      (8041)
  281. MOV     T,A             Move Acc to Timer/Counter
  282. MOV     @R0,A           Move Acc to Indirect RAM
  283. MOV     @R1,A           Move Acc to Indirect RAM
  284. MOV     @R0,#<immed>    Move Immediate data to Indirect RAM
  285. MOV     @R1,#<immed>    Move Immediate data to Indirect RAM
  286.  
  287. MOVD    A,P4            Move half-byte Port 4 to Acc (lower nibble)
  288. MOVD    A,P5            Move half-byte Port 5 to Acc (lower nibble)
  289. MOVD    A,P6            Move half-byte Port 6 to Acc (lower nibble)
  290. MOVD    A,P7            Move half-byte Port 7 to Acc (lower nibble)
  291. MOVD    P4,A            Move lower nibble of Acc to Port 4
  292. MOVD    P5,A            Move lower nibble of Acc to Port 5
  293. MOVD    P6,A            Move lower nibble of Acc to Port 6
  294. MOVD    P7,A            Move lower nibble of Acc to Port 7
  295.  
  296. MOVP    A,@A            Move Indirect Program data to Acc
  297. MOVP3   A,@A            Move Indirect Program data to Acc (page 3)
  298.  
  299. MOVX    A,@R0           Move Indirect External RAM to Acc
  300. MOVX    A,@R1           Move Indirect External RAM to Acc
  301. MOVX    @R0,A           Move Acc to Indirect External RAM
  302. MOVX    @R1,A           Move Acc to Indirect External RAM
  303.  
  304. NOP                     No operation
  305.  
  306. ORL     A,Rn            OR Register to Acc
  307. ORL     A,@R0           OR Indirect RAM to Acc
  308. ORL     A,@R1           OR Indirect RAM to Acc
  309. ORL     A,#<immed>      OR Immediate data to Acc
  310. ORL     BUS,#<immed>    OR Immediate data to BUS
  311. ORL     P1,#<immed>     OR Immediate data to port P1
  312. ORL     P2,#<immed>     OR Immediate data to port P2
  313.  
  314. TASM TABLES  Version 2.9                                   Page 7
  315.  
  316. ORLD    P4,A            OR lower nibble of Acc with P4
  317. ORLD    P5,A            OR lower nibble of Acc with P5
  318. ORLD    P6,A            OR lower nibble of Acc with P6
  319. ORLD    P7,A            OR lower nibble of Acc with P7
  320.  
  321. OUTL    BUS,A           Output Acc to Bus
  322. OUT     DBB,A           Output Acc to DBB                    (8041)
  323. OUTL    P0,A            Output Acc to Port P0                (8021)
  324. OUTL    P1,A            Output Acc to Port P1
  325. OUTL    P2,A            Output Acc to Port P2
  326.  
  327. RAD                     Move A/D Converter to Acc            (8022)
  328.  
  329. RET                     Return from subroutine
  330. RETI                    Return from Interrupt w/o PSW restore(8022)
  331. RETR                    Return from Interrupt w/  PSW restore
  332.  
  333. RL      A               Rotate Acc Left
  334. RLC     A               Rotate Acc Left through Carry
  335. RR      A               Rotate Acc Right
  336. RRC     A               Rotate Acc Right through Carry
  337.  
  338. SEL     AN0             Select Analog Input 0                (8022)
  339. SEL     AN1             Select Analog Input 1                (8022)
  340. SEL     MB0             Select Memory Bank 0
  341. SEL     MB1             Select Memory Bank 1
  342. SEL     RB0             Select Register Bank 0
  343. SEL     RB1             Select Register Bank 1
  344.  
  345. STOP    TCNT            Stop Timer/Counter
  346. STRT    CNT             Start Counter
  347. STRT    T               Start Timer
  348.  
  349. SWAP    A               Swap nibbles of Acc
  350.  
  351. XCH     A,Rn            Exchange Register with Acc
  352. XCH     A,@R0           Exchange Indirect RAM with Acc
  353. XCH     A,@R1           Exchange Indirect RAM with Acc
  354.  
  355. XCHD    A,@R0           Exchange lower nibble of Indirect RAM w/ Acc
  356. XCHD    A,@R1           Exchange lower nibble of Indirect RAM w/ Acc
  357.  
  358. XRL     A,Rn            Exclusive OR Register to Acc
  359. XRL     A,@R0           Exclusive OR Indirect RAM to Acc
  360. XRL     A,@R1           Exclusive OR Indirect RAM to Acc
  361. XRL     A,#<immed>      Exclusive OR Immediate data to Acc
  362.  
  363. See manufacturer's data for  a  more  complete  description  of  the
  364. meaning    of     the     mnemonics    and     addressing     modes.
  365. TASM TABLES  Version 2.9                                   Page 8
  366.  
  367. 8051 INSTRUCTIONS AND ADDRESSING MODES
  368.  
  369. The following list shows the acceptable opcode mnemonics  and  their
  370. corresponding  operand  formats for the 8051 version of TASM.  Where
  371. 'Rn' is seen,  R0 through R7  may  be  substituted.  Other  symbolic
  372. fields are as follows:
  373.  
  374.         SYMBOLIC            DESCRIPTION
  375.         -----------------------------------------------
  376.         <addr11>            Absolute address (11 bits)
  377.         <addr16>            Absolute address (16 bits)
  378.         <bit>               Bit address
  379.         <immed>             Immediate data
  380.         <direct>            Direct RAM address
  381.         <rel>               Relative address
  382.  
  383. Any valid TASM expression can appear in the  place  of  any  of  the
  384. above symbolics.
  385.  
  386. OPCODE  OPERAND             DESCRIPTION
  387. --------------------------------------------------------------------
  388. ACALL   <addr11>            Absolute Call
  389. ADD     A,Rn                Add Register to Acc
  390. ADD     A,@R0               Add Indirect RAM to Acc
  391. ADD     A,@R1               Add Indirect RAM to Acc
  392. ADD     A,#<immed>          Add Immediate data to Acc
  393. ADD     A,<direct>          Add Direct RAM to Acc
  394. ADDC    A,Rn                Add Register to Acc with carry
  395. ADDC    A,@R0               Add Indirect RAM to Acc with carry
  396. ADDC    A,@R1               Add Indirect RAM to Acc with carry
  397. ADDC    A,#<immed>          Add Immediate data to Acc with carry
  398. ADDC    A,<direct>          Add Direct RAM to Acc with carry
  399.  
  400. AJMP    <addr11>            Absolute Jump
  401.  
  402. ANL     A,Rn                AND Register and Acc
  403. ANL     A,@R0               AND Indirect RAM and Acc
  404. ANL     A,@R1               AND Indirect RAM and Acc
  405. ANL     A,#<immed>          AND Immediate data and Acc
  406. ANL     A,<direct>          AND Direct RAM and Acc
  407. ANL     C,/<bit>            AND Complement of direct bit to Carry
  408. ANL     C,bit>              AND direct bit to Carry
  409. ANL     <direct>,A          AND Acc to direct RAM
  410. ANL     <direct>,#<immed>   AND Immediate data and direct RAM
  411.  
  412. CJNE    A,#<immed>,<rel>    Compare Immediate to Acc   and JNE
  413. CJNE    A,<direct>,<rel>    Compare direct RAM to Acc and JNE
  414. CJNE    Rn,#<immed>,<rel>   Compare Immediate to Register and JNE
  415. CJNE    @R0,#<immed>,<rel>  Compare Immediate to Indirect RAM and JNE
  416. CJNE    @R1,#<immed>,<rel>  Compare Immediate to Indirect RAM and JNE
  417.  
  418. CLR     A                   Clear Accumulator
  419. CLR     C                   Clear Carry
  420. CLR     <bit>               Clear Bit
  421.  
  422. CPL     A                   Complement Accumulator
  423. TASM TABLES  Version 2.9                                   Page 9
  424.  
  425. CPL     C                   Complement Carry
  426. CPL     <bit>               Complement Bit
  427.  
  428. DA      A                   Decimal Adjust Accumulator
  429. DEC     A                   Decrement Acc
  430. DEC     Rn                  Decrement Register
  431. DEC     @R0                 Decrement Indirect RAM
  432. DEC     @R1                 Decrement Indirect RAM
  433. DEC     <direct>            Decrement Direct RAM
  434.  
  435. DIV     AB                  Divide Acc by B
  436.  
  437. DJNZ    Rn,<rel>            Decrement Register and JNZ
  438. DJNZ    <direct>,<rel>      Decrement Direct RAM and JNZ
  439.  
  440. INC     A                   Increment Acc
  441. INC     Rn                  Increment Register
  442. INC     @R0                 Increment Indirect RAM
  443. INC     @R1                 Increment Indirect RAM
  444. INC     DPTR                Increment Data Pointer
  445. INC     <direct>            Increment Direct RAM
  446.  
  447. JB      <bit>,<rel>         Jump if Bit is set
  448. JBC     <bit>,<rel>         Jump if Bit is set & clear Bit
  449. JC      <rel>               Jump if Carry is set
  450. JMP     @A+DPTR             Jump indirect relative to Data Pointer
  451. JNB     <bit>,<rel>         Jump if Bit is clear
  452. JNC     <rel>               Jump if Carry is clear
  453. JNZ     <rel>               Jump if Acc is not zero
  454. JZ      <rel>               Jump if Acc is zero
  455.  
  456. LCALL   <addr16>            Long Subroutine Call
  457. LJMP    <addr16>            Long Jump
  458.  
  459. MOV     A,Rn                Move Register to Acc
  460. MOV     A,@R0               Move Indirect RAM to Acc
  461. MOV     A,@R1               Move Indirect RAM to Acc
  462. MOV     A,#<immed>          Move Immediate data to Acc
  463. MOV     A,<direct>          Move direct RAM to Acc
  464. MOV     C,<bit>             Move bit to Acc
  465. MOV     DPTR,#<immed>       Move immediate data to Data Pointer
  466. MOV     Rn,A                Move Acc to Register
  467. MOV     Rn,#<immed>         Move Immediate data to Register
  468. MOV     Rn,<direct>         Move Direct RAM to Register
  469. MOV     @R0,A               Move Acc to Indirect RAM
  470. MOV     @R1,A               Move Acc to Indirect RAM
  471. MOV     @R0,#<immed>        Move Immediate data to Indirect RAM
  472. MOV     @R1,#<immed>        Move Immediate data to Indirect RAM
  473. MOV     @R0,<direct>        Move Direct RAM to Indirect RAM
  474. MOV     @R1,<direct>        Move Direct RAM to Indirect RAM
  475. MOV     <direct>,A          Move Acc to Direct RAM
  476. MOV     <bit>,C             Move Carry to Bit
  477. MOV     <direct>,Rn         Move Register to Direct RAM
  478. MOV     <direct>,@R0        Move Indirect RAM to Direct RAM
  479. MOV     <direct>,@R1        Move Indirect RAM to Direct RAM
  480. MOV     <direct>,#<immed>   Move Immediate data to Direct RAM
  481. TASM TABLES  Version 2.9                                  Page 10
  482.  
  483. MOV     <direct>,<direct>   Move Direct RAM to Direct RAM
  484. MOVC    A,@A+DPTR           Move code byte relative to DPTR to Acc
  485. MOVC    A,@A+PC             Move code byte relative to PC to Acc
  486.  
  487. MOVX    A,@R0               Move external RAM to Acc
  488. MOVX    A,@R1               Move external RAM to Acc
  489. MOVX    A,@DPTR             Move external RAM to Acc (16 bit addr)
  490. MOVX    @R0,A               Move Acc to external RAM
  491. MOVX    @R1,A               Move Acc to external RAM
  492. MOVX    @DPTR,A             Move Acc to external RAM (16 bit addr)
  493.  
  494. MUL     AB                  Multiply Acc by B
  495.  
  496. NOP                         No operation
  497.  
  498. ORL     A,Rn                OR Register and Acc
  499. ORL     A,@R0               OR Indirect RAM and Acc
  500. ORL     A,@R1               OR Indirect RAM and Acc
  501. ORL     A,#<immed>          OR Immediate data and Acc
  502. ORL     A,<direct>          OR Direct RAM and Acc
  503. ORL     C,/<bit>            OR Complement of direct bit to Carry
  504. ORL     C,<bit>             OR direct bit to Carry
  505. ORL     <direct>,A          OR Acc to direct RAM
  506. ORL     <direct>,#<immed>   OR Immediate data and direct RAM
  507.  
  508. POP     <direct>            Pop  from Stack and put in Direct RAM
  509. PUSH    <direct>            Push from Direct RAM to Stack
  510.  
  511. RET                         Return from subroutine
  512. RETI                        Return from Interrupt
  513.  
  514. RL      A                   Rotate Acc left
  515. RLC     A                   Rotate Acc left through Carry
  516. RR      A                   Rotate Acc right
  517. RRC     A                   Rotate Acc right through Carry
  518.  
  519. SETB    C                   Set the Carry Bit
  520. SETB    <bit>               Set Direct Bit
  521.  
  522. SJMP    <rel>               Short jump
  523.  
  524. SUBB    A,Rn                Subtract Register from Acc with Borrow
  525. SUBB    A,@R0               Subtract Indirect RAM from Acc w/ Borrow
  526. SUBB    A,@R1               Subtract Indirect RAM from Acc w/ Borrow
  527. SUBB    A,#<immed>          Subtract Immediate data from Acc w/ Borrow
  528. SUBB    A,<direct>          Subtract Direct RAM from Acc w/ Borrow
  529.  
  530. SWAP    A                   Swap nibbles of Acc
  531.  
  532. XCH     A,Rn                Exchange Acc with Register
  533. XCH     A,@R0               Exchange Acc with Indirect RAM
  534. XCH     A,@R1               Exchange Acc with Indirect RAM
  535. XCH     A,<direct>          Exchange Acc with Direct RAM
  536.  
  537. XCHD    A,@R0               Exchange Digit in Acc with Indirect RAM
  538. XCHD    A,@R1               Exchange Digit in Acc with Indirect RAM
  539. TASM TABLES  Version 2.9                                  Page 11
  540.  
  541. XRL     A,Rn                Exclusive OR Register and Acc
  542. XRL     A,@R0               Exclusive OR Indirect RAM and Acc
  543. XRL     A,@R1               Exclusive OR Indirect RAM and Acc
  544. XRL     A,#<immed>          Exclusive OR Immediate data and Acc
  545. XRL     A,<direct>          Exclusive OR Direct RAM and Acc
  546. XRL     <direct>,A          Exclusive OR Acc to direct RAM
  547. XRL     <direct>,#<immed>   Exclusive OR Immediate data and direct RAM
  548.  
  549. Note  that  the above tables do not automatically define the various
  550. mnemonics that may be  used  for  addressing  the  special  function
  551. registers  of  the  8051.  The  user  may  wish  to set up a file of
  552. equates (EQU's) that can be included in the  source  file  for  this
  553. purpose.  The following illustrates some of the appropriate equates:
  554.  
  555.  
  556. P0      .equ    080H    ;Port 0
  557. SP      .equ    081H    ;Stack pointer
  558. DPL     .equ    082H
  559. DPH     .equ    083H
  560. PCON    .equ    087H
  561. TCON    .equ    088H
  562. TMOD    .equ    089H
  563. TL0     .equ    08AH
  564. TL1     .equ    08BH
  565. TH0     .equ    08CH
  566. TH1     .equ    08DH
  567. P1      .equ    090H    ;Port 1
  568. SCON    .equ    098H
  569. SBUF    .equ    099H
  570. P2      .equ    0A0H    ;Port 2
  571. IEC     .equ    0A8H
  572. P3      .equ    0B0H    ;Port 3
  573. IPC     .equ    0B8H
  574. PSW     .equ    0D0H
  575. ACC     .equ    0E0H    ;Accumulator
  576. B       .equ    0F0H    ;Secondary Accumulator
  577. ;Now some bit addresses
  578. P0.0    .equ    080H    ;Port 0 bit 0
  579. P0.1    .equ    081H    ;Port 0 bit 1
  580. P0.2    .equ    082H    ;Port 0 bit 2
  581. P0.3    .equ    083H    ;Port 0 bit 3
  582. P0.4    .equ    084H    ;Port 0 bit 4
  583. P0.5    .equ    085H    ;Port 0 bit 5
  584. P0.6    .equ    086H    ;Port 0 bit 6
  585. P0.7    .equ    087H    ;Port 0 bit 7
  586. ACC.0   .equ    0E0H    ;Acc bit 0
  587. ACC.1   .equ    0E1H    ;Acc bit 1
  588. ACC.2   .equ    0E2H    ;Acc bit 2
  589. ACC.3   .equ    0E3H    ;Acc bit 3
  590. ACC.4   .equ    0E4H    ;Acc bit 4
  591. ACC.5   .equ    0E5H    ;Acc bit 5
  592. ACC.6   .equ    0E6H    ;Acc bit 6
  593. ACC.7   .equ    0E7H    ;Acc bit 7
  594.  
  595. See  the   manufacturer's   data  sheets   for   more   information.
  596. TASM TABLES  Version 2.9                                  Page 12
  597.  
  598. 8085 INSTRUCTIONS AND ADDRESSING MODES
  599.  
  600. The following list shows the acceptable opcode mnemonics  and  their
  601. corresponding  operand  formats for the 8085  version of TASM.   The
  602. following symbols are used in the table:
  603.  
  604.         SYMBOLIC            DESCRIPTION
  605.         -----------------------------------------------
  606.         <addr>              Absolute address (16 bits)
  607.         <data>              Immediate data (8 bits)
  608.         <data16>            Immediate data (16 bits)
  609.         <reg>               Register (A,B,C,D,E,H,L)
  610.         <rp>                Register pair (B,D,H,SP)
  611.         <port>              Port address (0-255)
  612.         <int>               Interrupt level (0 - 7)
  613.  
  614. Any valid TASM expression can appear in the  place  of  any  of  the
  615. above symbolics except <reg>, <rp> and <int>.
  616.  
  617. OPCODE  OPERAND        DESCRIPTION
  618. --------------------------------------------------------------------
  619. ACI      <data>         Add immediate to A with carry
  620. ADC      <reg>          Add <reg> to A with carry
  621. ADC      M              Add indirect memory (HL) with carry
  622. ADD      <reg>          Add <reg> to A
  623. ADD      M              Add indirect memory (HL) to A
  624. ADI      <data>         Add immediate to A
  625.  
  626. ANA      <reg>          And register with A
  627. ANA      M              And indirect memory (HL) to A
  628. ANI      <data>         And immediate to A
  629.  
  630. CALL     <addr>         Call subroutine at <addr>
  631. CC       <addr>         Call subroutine if carry set
  632. CNC      <addr>         Call subroutine if carry clear
  633. CZ       <addr>         Call subroutine if zero
  634. CNZ      <addr>         Call subroutine if non zero
  635. CP       <addr>         Call subroutine if positive
  636. CM       <addr>         Call subroutine if negative
  637. CPE      <addr>         Call subroutine if even parity
  638. CPO      <addr>         Call subroutine if odd  parity
  639. CMA                     Complement A
  640. CMC                     Complemennt carry
  641. CMP      <reg>          Compare register with A
  642. CMP      M              Compare indirect memory (HL) with A
  643. CPI      <data>         Compare immediate data with A
  644.  
  645. DAA                     Decimal adjust A
  646. DAD      <rp>           Add register pair to HL
  647. DCR      <reg>          Decrement register
  648. DCR      M              Decrement indirect memory (HL)
  649. DCX      <rp>           Decrement register pair
  650.  
  651. DI                      Disable interrupts
  652. EI                      Enable interrupts
  653. HLT                     Halt
  654. TASM TABLES  Version 2.9                                  Page 13
  655.  
  656. IN       <port>         Input on port
  657. INR      <reg>          Increment register
  658. INR      M              Increment indirect memory (HL)
  659. INX      <rp>           Increment register pair
  660.  
  661. JMP      <addr>         Jump
  662. JC       <addr>         Jump if carry set
  663. JNC      <addr>         Jump if carry clear
  664. JZ       <addr>         Jump if zero
  665. JNZ      <addr>         Jump if not zero
  666. JM       <addr>         Jump if minus
  667. JP       <addr>         Jump if plus
  668. JPE      <addr>         Jump if parity even
  669. JPO      <addr>         Jump if parity odd
  670.  
  671. LDA      <addr>         Load A direct from memory
  672. LDAX     B              Load A indirect from memory using BC
  673. LDAX     D              Load A indirect from memory using DE
  674. LHLD     <addr>         Load HL direct from memory
  675. LXI      <rp>,<data16>  Load register pair with immediate data
  676.  
  677. MOV      <reg>,<reg>    Move register to register
  678. MOV      <reg>,M        Move indirect memory (HL) to register
  679. MVI      <reg>,<data>   Move immediate data to register
  680.  
  681. NOP                     No operation
  682.  
  683. ORA      <reg>          Or register with A
  684. ORA      M              Or indirect memory (HL) with A
  685. ORI      <data>         Or immediate data to A
  686. OUT      <port>         Ouput to port
  687.  
  688. PCHL                    Jump to instruction at (HL)
  689. POP      <rp>           Pop  register pair (excluding SP) from stack
  690. PUSH     <rp>           Push register pair (excluding SP) onto stack
  691. POP      PSW            Pop  PSW from stack
  692. PUSH     PSW            Pop  PSW onto stack
  693.  
  694. RAL                     Rotate A left  with carry
  695. RAR                     Rotate A right with carry
  696. RLC                     Rotate A left  with branch carry
  697. RRC                     Rotate A right with branch carry
  698.  
  699. RET                     Return from subroutine
  700. RZ                      Return if zero
  701. RNZ                     Return if non zero
  702. RC                      Return if carry set
  703. RNC                     Return if carry clear
  704. RM                      Return if minus
  705. RP                      Return if plus
  706. RPE                     Return if parity even
  707. RPO                     Return if parity odd
  708.  
  709. RIM                     Read interrupt mask
  710. RST      <int>          Restart at vector <int>
  711.  
  712. TASM TABLES  Version 2.9                                  Page 14
  713.  
  714. SBB      <reg>          Subtract <reg> from A         with borrow
  715. SBB      M              Subtract indirect memory (HL) with borrow
  716. SBI      <data>         Subtract immediate from A     with borrow
  717. SUB      <reg>          Subtract <reg> from A
  718. SUB      M              Subtract indirect memory (HL) from A
  719. SUI      <data>         Subtract immediate from A
  720.  
  721. SHLD     <addr>         Store HL
  722. SIM                     Store Interrupt mask
  723. SPHL                    Exchange SP with HL
  724.  
  725. STA      <addr>         Store A direct memory
  726. STAX     B              Store A indirect using BC
  727. STAX     D              Store A indirect using DE
  728.  
  729. STC                     Set carry
  730.  
  731. XRA      <reg>          Exclusive OR A with register
  732. XRA      M              Exclusive Or A with indirect memory (HL)
  733. XRI      <data>         Exclusive Or A with immediate data
  734. XCHG                    Exchange DE with HL
  735. XTHL                    Exchange HL with top of stack
  736.  
  737. See  the   manufacturer's   data  sheets   for   more   information.
  738. TASM TABLES  Version 2.9                                  Page 15
  739.  
  740. Z80 INSTRUCTIONS AND ADDRESSING MODES
  741.  
  742. The following list shows the acceptable opcode mnemonics  and  their
  743. corresponding   operand  formats for the Z80  version of TASM.   The
  744. following symbols are used in the table:
  745.         SYMBOLIC            DESCRIPTION
  746.         -----------------------------------------------
  747.         <addr>              Absolute address (16 bits)
  748.         <bit>               Bit address
  749.         <data>              Immediate data (8 bits)
  750.         <data16>            Immediate data (16 bits)
  751.         <disp>              Relative address
  752.         <reg>               Register (A, B, C, D, E, H, or L)
  753.         <rp>                Register pair (BC, DE, HL, or SP)
  754.         <port>              Port (0 - 255)
  755.         <cond>              Condition
  756.                                 NZ - not zero
  757.                                 Z  - zero
  758.                                 NC - not carry
  759.                                 C  - carry
  760.                                 PO - parity odd
  761.                                 PE - parity even
  762.                                 P  - positive
  763.                                 M  - minus
  764.  
  765. Any valid TASM expression can appear in the  place  of the   <addr>,
  766. <bit>, <data>, <data16>, or <disp> symbolics.
  767.  
  768. OPCODE  OPERAND         DESCRIPTION
  769. --------------------------------------------------------------------
  770. ADC  A,<data>           Add immediate with carry to accumulator
  771. ADC  A,<reg>            Add register with carry to accumulator
  772. ADC  A,(HL)             Add indirect memory with carry to accumulator
  773. ADC  A,(IX+<disp>)      Add indirect memory with carry to accumulator
  774. ADC  A,(IY+<disp>)      Add indirect memory with carry to accumulator
  775. ADC  HL,<rp>            Add register pair with carry to HL
  776.  
  777. ADD  A,<data>           Add immediate to accumulator
  778. ADD  A,<reg>            Add register to accumulator
  779. ADD  A,(HL)             Add indirect memory to accumulator
  780. ADD  A,(IX+<disp>)      Add indirect memory to accumulator
  781. ADD  A,(IY+<disp>)      Add indirect memory to accumulator
  782. ADD  HL,<rp>            Add register pair to HL
  783. ADD  IX,<rp>            Add register pair to index register
  784. ADD  IY,<rp>            Add register pair to index register
  785.  
  786. AND  <data>             And immediate with accumulator
  787. AND  <reg>              And register  with accumulator
  788. AND  (HL)               And memory with accumulator
  789. AND  (IX+<disp>)        And memory with accumulator
  790. AND  (IY+<disp>)        And memory with accumulator
  791.  
  792. BIT  <bit>,<reg>        Test <bit> in register
  793. BIT  <bit>,(HL)         Test <bit> in indirect memory
  794. BIT  <bit>,(IY+<disp>)  Test <bit> in indirect memory
  795. BIT  <bit>,(IX+<disp>)  Test <bit> in indirect memory
  796. TASM TABLES  Version 2.9                                  Page 16
  797.  
  798. CALL <addr>             Call the routine at <addr>
  799. CALL <cond>,<addr>      Call the routine if <cond> is satisfied
  800.  
  801. CCF                     Complement carry flag
  802.  
  803. CP   <data>             Compare immediate data with accumulator
  804. CP   <reg>              Compare register with accumulator
  805. CP   (HL)               Compare indirect memory with accumulator
  806. CP   (IX+<disp>)        Compare indirect memory with accumulator
  807. CP   (IY+<disp>)        Compare indirect memory with accumulator
  808. CPD                     Compare accumulator with memory and
  809.                             decrement address and byte counters
  810. CPDR                    Compare accumulator with memory and
  811.                             decrement address and byte counter,
  812.                             continue until match is found or
  813.                             byte counter is zero
  814.  
  815. CPI                     Compare accumulator with memory and
  816.                             increment address and byte counters
  817. CPIR                    Compare accumulator with memory and
  818.                             increment address and byte counter,
  819.                             continue until match is found or
  820.                             byte counter is zero
  821. CPL                     Complement the accumulator
  822. DAA                     Decimal adjust accumulator
  823. DEC  <reg>              Decrement register contents
  824. DI                      Disable interrupts
  825. DJNZ <disp>             Decrement reg B and jump relative if zero
  826. EI                      Enable interrupts
  827. EX   AF,AF'             Exchange program status and alt program stat
  828. EX   DE,HL              Exchange DE and HL contents
  829. EX   (SP),HL            Exchange contents of HL and top of stack
  830. EX   (SP),IX            Exchange contents of IX and top of stack
  831. EX   (SP),IY            Exchange contents of IY and top of stack
  832. EXX                     Exchange register pairs and alt reg pairs
  833. HALT                    Program execution stops
  834. IM   0                  Interrupt mode 0
  835. IM   1                  Interrupt mode 1
  836. IM   2                  Interrupt mode 2
  837. IN   A,<port>           Input port to accumulator
  838. INC  <reg>              Increment contents of register
  839. INC  <rp>               Increment contents of register pair
  840. INC  IX                 Increment IX
  841. INC  IY                 Increment IY
  842. INC  (HL)               Increment indirect memory
  843. INC  (IX+<disp>)        Increment indirect memory
  844. INC  (IY+<disp>)        Increment indirect memory
  845. IND                     Input to memory and decrement pointer
  846. INDR                    Input to memory and decrement pointer until
  847.                             byte counter is zero
  848. INI                     Input to memory and increment pointer
  849. INIR                    Input to memory and increment pointer until
  850.                             byte counter is zero
  851. IN   <reg>,(C)          Input to register
  852.  
  853. JP   <addr>             Jump to location
  854. TASM TABLES  Version 2.9                                  Page 17
  855.  
  856. JP   <cond>,<addr>      Jump to location if condition satisifed
  857. JP   (HL)               Jump to location pointed to by HL
  858. JP   (IX)               Jump to location pointed to by IX
  859. JP   (IY)               Jump to location pointed to by IY
  860.  
  861. JR   <disp>             Jump relative
  862. JR   C,<disp>           Jump relative if carry is set
  863. JR   NC,<disp>          Jump relative if carry bit is reset
  864. JR   NZ,<disp>          Jump relative if zero flag is reset
  865. JR   Z,<disp>           Jump relative if zero flag is set
  866.  
  867. LD   A,I                Move interrupt vector contents to accumulator
  868. LD   A,R                Move refresh reg contents to accumulator
  869. LD   A,(<addr>)         Load accumulator indirect from memory
  870. LD   A,(<rp>)           Load accumulator indirect from memory by <rp>
  871. LD   <reg>,<reg>        Load source register to destination register
  872. LD   <rp>,(<addr>)      Load register pair indirect from memory
  873. LD   IX,(<addr>)        Load IX indirect from memory
  874. LD   IY,(<addr>)        Load IY indirect from memory
  875. LD   I,A                Load interrup vector from accumulator
  876. LD   R,A                Load refresh register from accumulator
  877. LD   <reg>,<data>       Load register with immediate data
  878. LD   <rp>,<data16>      Load register pair with immediate data
  879. LD   IX,<data16>        Load  IX  with immediate data
  880. LD   IY,<data16>        Load  IY  with immediate data
  881. LD   <reg>,(HL)         Load register indirect from memory
  882. LD   <reg>,(IX+<disp>)  Load register indirect from memory
  883. LD   <reg>,(IY+<disp>)  Load register indirect from memory
  884. LD   SP,HL              Load contents of HL to stack pointer
  885. LD   SP,IX              Load contents of IX to stack pointer
  886. LD   SP,IY              Load contents of IY to stack pointer
  887. LD   (addr),A           Load contents of A to memory
  888. LD   (<addr>),HL        Load contents of HL to memory
  889. LD   (<addr>),<rp>      Load contents of register pair to memory
  890. LD   (<addr>),IX        Load contents of IX to memory
  891. LD   (<addr>),IY        Load contents of IY to memory
  892. LD   (HL),<data>        Load immediate into indirect memory
  893. LD   (IX+<disp>),<data> Load immediate into indirect memory
  894. LD   (IY+<disp>),<data> Load immediate into indirect memory
  895. LD   (HL),<reg>         Load register  into indirect memory
  896. LD   (IX+<disp>),<reg>  Load register  into indirect memory
  897. LD   (IY+<disp>),<reg>  Load register  into indirect memory
  898. LD   (<rp>),A           Load accumulator into indirect memory
  899. LDD                     Transfer data between memory and decrement
  900.                             destination and source addresses
  901. LDDR                    Transfer data between memory until byte
  902.                             counter is zero, decrement destintation
  903.                             and source addresses
  904. LDI                     Transfer data between memory and increment
  905.                             destination and source addresses
  906. LDIR                    Transfer data between memory until byte
  907.                             counter is zero, increment destination
  908.                             and source addresses
  909. NEG                     Negate contents of accumulator
  910. NOP                     No operation
  911. OR   <data>             Or immediate with accumulator
  912. TASM TABLES  Version 2.9                                  Page 18
  913.  
  914. OR   <reg>              Or register with accumulator
  915. OR   (HL)               Or indirect memory with accumulator
  916. OR   (IX+<disp>)        Or indirect memory with accumulator
  917. OR   (IY+<disp>)        Or indirect memory with accumulator
  918. OUT  (C),<reg>          Output from registor
  919. OUTD                    Output from memory, decrement address
  920. OTDR                    Output from memory, decrement address
  921.                             continue until reg B is zero
  922. OUTI                    Output from memory, increment address
  923. OTIR                    Output from memory, increment address
  924.                             continue until reg B is zero
  925. OUT  <port>,A           Output from accumulator
  926. POP  <rp>               Load register pair from top of stack
  927. POP  IX                 Load IX from top of stack
  928. POP  IY                 Load IY from top of stack
  929. PUSH <rp>               Store resister pair on top of stack
  930. PUSH IX                 Store IX on top of stack
  931. PUSH IY                 Store IY on top of stack
  932. RES  <bit>,<reg>        Reset register bit
  933. RES  <bit>,(HL)         Reset bit at indirect memory location
  934. RES  <bit>,(IX+disp)    Reset bit at indirect memory location
  935. RES  <bit>,(IY+<disp>)  Reset bit at indirect memory location
  936. RET                     Return from subroutine
  937. RET  <cond>             Return from subroutine if condition true
  938. RETI                    Return from interrupt
  939. RETN                    Return from non-maskable interrupt
  940. RL   <reg>              Rotate left through carry register contents
  941. RL   (HL)               Rotate left through carry indirect memory
  942. RL   (IX+<disp>)        Rotate left through carry indirect memory
  943. RL   (IY+<disp>)        Rotate left through carry indirect memory
  944. RLA                     Rotate left through carry accumulator
  945. RLC  <reg>              Rotate left branch  carry register contents
  946. RLC  (HL)               Rotate left branch  carry indirect memory
  947. RLC  (IX+<disp>)        Rotate left branch  carry indirect memory
  948. RLC  (IY+<disp>)        Rotate left branch  carry indirect memory
  949. RLCA                    Rotate left accumulator
  950. RLD                     Rotate one BCD digit left between the
  951.                             accumulator and memory
  952. RR   <reg>              Rotate right through carry register contents
  953. RR   (HL)               Rotate right through carry indirect memory
  954. RR   (IX+<disp>)        Rotate right through carry indirect memory
  955. RR   (IY+<disp>)        Rotate right through carry indirect memory
  956. RRA                     Rotate right through carry accumulator
  957. RRC  <reg>              Rotate right branch  carry register contents
  958. RRC  (HL)               Rotate right branch  carry indirect memory
  959. RRC  (IX+<disp>)        Rotate right branch  carry indirect memory
  960. RRC  (IY+<disp>)        Rotate right branch  carry indirect memory
  961. RRCA                    Rotate right branch  carry accumulator
  962. RRD                     Rotate one BCD digit right between the
  963.                             accumulator and memory
  964. RST                     Restart
  965. SBC  A,<data>           Subtract data            from A with borrow
  966. SBC  A,<reg>            Subtract register        from A with borrow
  967. SBC  A,(HL)             Subtract indirect memory from A with borrow
  968. SBC  A,(IX+<disp>)      Subtract indirect memory from A with borrow
  969. SBC  A,(IY+<disp>)      Subtract indirect memory from A with borrow
  970. TASM TABLES  Version 2.9                                  Page 19
  971.  
  972. SBC  HL,<rp>            Subtract register pair from HL with borrow
  973. SCF                     Set carry flag
  974. SET  <bit>,<reg>        Set register bit
  975. SET  <bit>,(HL)         Set indirect memory bit
  976. SET  <bit>,(IX+<disp>)  Set indirect memory bit
  977. SET  <bit>,(IY+<disp>)  Set indirect memory bit
  978. SLA  <reg>              Shift register left arithmetic
  979. SLA  (HL)               Shift indirect memory left arithmetic
  980. SLA  (IX+<disp>)        Shift indirect memory left arithmetic
  981. SLA  (IY+<disp>)        Shift indirect memory left arithmetic
  982. SRA  <reg>              Shift register right arithmetic
  983. SRA  (HL)               Shift indirect memory right arithmetic
  984. SRA  (IX+<disp>)        Shift indirect memory right arithmetic
  985. SRA  (IY+<disp>)        Shift indirect memory right arithmetic
  986. SRL  <reg>              Shift register right logical
  987. SRL  (HL)               Shift indirect memory right logical
  988. SRL  (IX+<disp>)        Shift indirect memory right logical
  989. SRL  (IY+<disp>)        Shift indirect memory right logical
  990. SUB  <data>             Subtract immediate from accumulator
  991. SUB  <reg>              Subtract register from accumulator
  992. SUB  (HL)               Subtract indirect memory from accumulator
  993. SUB  (IX+<disp>)        Subtract indirect memory from accumulator
  994. SUB  (IY+<disp>)        Subtract indirect memory from accumulator
  995. XOR  <data>             Exclusive or immediate with accumulator
  996. XOR  <reg>              Exclusive or register with accumulator
  997. XOR  (HL)               Exclusive or indirect memory with accumulator
  998. XOR  (IX+<disp>)        Exclusive or indirect memory with accumulator
  999. XOR  (IY+<disp>)        Exclusive or indirect memory with accumulator
  1000.  
  1001. See  the   manufacturer's   data  sheets   for   more   information.
  1002. TASM TABLES  Version 2.9                                  Page 20
  1003.  
  1004. 6805 INSTRUCTIONS AND ADDRESSING MODES
  1005.  
  1006. The following list shows the acceptable opcode mnemonics  and  their
  1007. corresponding  operand  formats for the 6805  version of TASM.   The
  1008. following symbols are used in the table:
  1009.  
  1010.         SYMBOLIC            DESCRIPTION
  1011.         -----------------------------------------------
  1012.         <addr>              Absolute address (16 bits)
  1013.         <addr8>             Absolute address (8 bits)
  1014.         <bit>               Bit address
  1015.         <data>              Immediate data (8 bits)
  1016.         <rel>               Relative address
  1017.  
  1018. Any valid TASM expression can appear in the  place  of the   <addr>,
  1019. <addr8>, <bit>, <data>, or <rel> symbolics.
  1020.  
  1021. OPCODE  OPERAND         DESCRIPTION
  1022. --------------------------------------------------------------
  1023. ADC     #<data>         Add with carry, immediate
  1024. ADC     ,X              Add with carry, indexed, no offset
  1025. ADC     <addr8>,X       Add with carry, indexed, 1 byte offset
  1026. ADC     <addr>,X        Add with carry, indexed, 2 byte offset
  1027. ADC     <addr8>         Add with carry, direct
  1028. ADC     <addr>          Add with carry, extended
  1029.  
  1030. ADD     #<data>         Add, immediate
  1031. ADD     ,X              Add, indexed, no offset
  1032. ADD     <addr8>,X       Add, indexed, 1 byte offset
  1033. ADD     <addr>,X        Add, indexed, 2 byte offset
  1034. ADD     <addr8>         Add, direct
  1035. ADD     <addr>          Add, extended
  1036.  
  1037. AND     #<data>         And, immediate
  1038. AND     ,X              And, indexed, no offset
  1039. AND     <addr8>,X       And, indexed, 1 byte offset
  1040. AND     <addr>,X        And, indexed, 2 byte offset
  1041. AND     <addr8>         And, direct
  1042. AND     <addr>          And, extended
  1043.  
  1044. ASLA                    Arithmetic Shift Left, accumulator
  1045. ASLX                    Arithmetic Shift Left, index register
  1046. ASL     <addr8>         Arithmetic Shift Left, direct
  1047. ASL     ,X              Arithmetic Shift Left, indexed, no offset
  1048. ASL     <addr8>,X       Arithmetic Shift Left, indexed, 1 byte offset
  1049.  
  1050. ASRA                    Arithmetic Shift Right, accumulator
  1051. ASRX                    Arithmetic Shift Right, index register
  1052. ASR     <addr8>         Arithmetic Shift Right, direct
  1053. ASR     ,X              Arithmetic Shift Right, indexed, no offset
  1054. ASR     <addr8>,X       Arithmetic Shift Right, indexed, 1 byte offset
  1055.  
  1056. BCC     <rel>           Branch if carry clear
  1057. BCLR    <bit>,<addr8>   Bit Clear in memory
  1058. BCS     <rel>           Branch if carry set
  1059. BEQ     <rel>           Branch if equal
  1060. TASM TABLES  Version 2.9                                  Page 21
  1061.  
  1062. BHCC    <rel>           Branch if half carry clear
  1063. BHCS    <rel>           Branch if half carry set
  1064. BHI     <rel.           Branch if higher
  1065. BHS     <rel>           Branch if higher or same
  1066. BIH     <rel>           Branch if interrupt line is high
  1067. BIL     <rel>           Branch if interrupt is low
  1068.  
  1069. BIT     #<data>         Bit test, immediate
  1070. BIT     ,X              Bit test, indexed, no offset
  1071. BIT     <addr8>,X       Bit test, indexed, 1 byte offset
  1072. BIT     <addr>,X        Bit test, indexed, 2 byte offset
  1073. BIT     <addr8>         Bit test, direct
  1074. BIT     <addr>          Bit test, extended
  1075.  
  1076. BLO     <rel>           Branch if lower
  1077. BLS     <rel>           Branch if lower or same
  1078. BMC     <rel>           Branch if interrupt mask is clear
  1079. BMI     <rel>           Branch if minus
  1080. BMS     <rel>           Branch if interuupt mask bit is set
  1081. BNE     <rel>           Branch if not equal
  1082. BPL     <rel>           Branch if plus
  1083. BRA     <rel>           Branch always
  1084. BRCLR   <bit>,<addr8>,<rel>     Branch if bit is clear
  1085. BRN     <rel>           Branch never
  1086. BRSET   <bit>,<addr8>,<rel>     Branch if bit is set
  1087. BSET    <bit>,<addr8>   Bit set in memory
  1088. BSR     <rel>           Branch to subroutine
  1089.  
  1090. CLC                     Clear carry bit
  1091. CLI                     Clear interuupt mask bit
  1092.  
  1093. CLRA                    Clear, accumulator
  1094. CLRX                    Clear, index register
  1095. CLR     <addr8>         Clear, direct
  1096. CLR     ,X              Clear, indexed, no offset
  1097. CLR     <addr8>,X       Clear, indexed, 1 byte offset
  1098.  
  1099. CMP     #<data>         Compare Acc, immediate
  1100. CMP     ,X              Compare Acc, indexed, no offset
  1101. CMP     <addr8>,X       Compare Acc, indexed, 1 byte offset
  1102. CMP     <addr>,X        Compare Acc, indexed, 2 byte offset
  1103. CMP     <addr8>         Compare Acc, direct
  1104. CMP     <addr>          Compare Acc, extended
  1105.  
  1106. COMA                    Complement, accumulator
  1107. COMX                    Complement, index register
  1108. COM     <addr8>         Complement, direct
  1109. COM     ,X              Complement, indexed, no offset
  1110. COM     <addr8>,X       Complement, indexed, 1 byte offset
  1111.  
  1112. CPX     #<data>         Compare Index, immediate
  1113. CPX     ,X              Compare Index, indexed, no offset
  1114. CPX     <addr8>,X       Compare Index, indexed, 1 byte offset
  1115. CPX     <addr>,X        Compare Index, indexed, 2 byte offset
  1116. CPX     <addr8>         Compare Index, direct
  1117. CPX     <addr>          Compare Index, extended
  1118. TASM TABLES  Version 2.9                                  Page 22
  1119.  
  1120. DECA                    Decrement, accumulator
  1121. DECX                    Decrement, index register
  1122. DEX                     Decrement, index register (alternate of DECX)
  1123. DEC     <addr8>         Decrement, direct
  1124. DEC     ,X              Decrement, indexed, no offset
  1125. DEC     <addr8>,X       Decrement, indexed, 1 byte offset
  1126.  
  1127. EOR     #<data>         Exclusive OR, immediate
  1128. EOR     ,X              Exclusive OR, indexed, no offset
  1129. EOR     <addr8>,X       Exclusive OR, indexed, 1 byte offset
  1130. EOR     <addr>,X        Exclusive OR, indexed, 2 byte offset
  1131. EOR     <addr8>         Exclusive OR, direct
  1132. EOR     <addr>          Exclusive OR, extended
  1133.  
  1134. INCA                    Increment, accumulator
  1135. INCX                    Increment, index register
  1136. INX                     Increment, index register (alternate of INCX)
  1137. INC     <addr8>         Increment, direct
  1138. INC     ,X              Increment, indexed, no offset
  1139. INC     <addr8>,X       Increment, indexed, 1 byte offset
  1140.  
  1141. JMP     ,X              Jump, indexed, no offset
  1142. JMP     <addr8>,X       Jump, indexed, 1 byte offset
  1143. JMP     <addr>,X        Jump, indexed, 2 byte offset
  1144. JMP     <addr8>         Jump, direct
  1145. JMP     <addr>          Jump, extended
  1146.  
  1147. JSR     ,X              Jump Subroutine, indexed, no offset
  1148. JSR     <addr8>,X       Jump Subroutine, indexed, 1 byte offset
  1149. JSR     <addr>,X        Jump Subroutine, indexed, 2 byte offset
  1150. JSR     <addr8>         Jump Subroutine, direct
  1151. JSR     <addr>          Jump Subroutine, extended
  1152.  
  1153. LDA     #<data>         Load Acc, immediate
  1154. LDA     ,X              Load Acc, indexed, no offset
  1155. LDA     <addr8>,X       Load Acc, indexed, 1 byte offset
  1156. LDA     <addr>,X        Load Acc, indexed, 2 byte offset
  1157. LDA     <addr8>         Load Acc, direct
  1158. LDA     <addr>          Load Acc, extended
  1159.  
  1160. LDX     #<data>         Load Index, immediate
  1161. LDX     ,X              Load Index, indexed, no offset
  1162. LDX     <addr8>,X       Load Index, indexed, 1 byte offset
  1163. LDX     <addr>,X        Load Index, indexed, 2 byte offset
  1164. LDX     <addr8>         Load Index, direct
  1165. LDX     <addr>          Load Index, extended
  1166.  
  1167. LSLA                    Logical Shift Left, accumulator
  1168. LSLX                    Logical Shift Left, index register
  1169. LSL     <addr8>         Logical Shift Left, direct
  1170. LSL     ,X              Logical Shift Left, indexed, no offset
  1171. LSL     <addr8>,X       Logical Shift Left, indexed, 1 byte offset
  1172.  
  1173. LSRA                    Logical Shift Right, accumulator
  1174. LSRX                    Logical Shift Right, index register
  1175. LSR     <addr8>         Logical Shift Right, direct
  1176. TASM TABLES  Version 2.9                                  Page 23
  1177.  
  1178. LSR     ,X              Logical Shift Right, indexed, no offset
  1179. LSR     <addr8>,X       Logical Shift Right, indexed, 1 byte offset
  1180.  
  1181. NEGA                    Negate, accumulator
  1182. NEGX                    Negate, index register
  1183. NEG     <addr8>         Negate, direct
  1184. NEG     ,X              Negate, indexed, no offset
  1185. NEG     <addr8>,X       Negate, indexed, 1 byte offset
  1186.  
  1187. NOP                     No Operation
  1188.  
  1189. ORA     #<data>         Inclusive OR Acc, immediate
  1190. ORA     ,X              Inclusive OR Acc, indexed, no offset
  1191. ORA     <addr8>,X       Inclusive OR Acc, indexed, 1 byte offset
  1192. ORA     <addr>,X        Inclusive OR Acc, indexed, 2 byte offset
  1193. ORA     <addr8>         Inclusive OR Acc, direct
  1194. ORA     <addr>          Inclusive OR Acc, extended
  1195.  
  1196. ROLA                    Rotate Left thru Carry, accumulator
  1197. ROLX                    Rotate Left thru Carry, index register
  1198. ROL     <addr8>         Rotate Left thru Carry, direct
  1199. ROL     ,X              Rotate Left thru Carry, indexed, no offset
  1200. ROL     <addr8>,X       Rotate Left thru Carry, indexed, 1 byte offset
  1201.  
  1202. RORA                    Rotate Right thru Carry, accumulator
  1203. RORX                    Rotate Right thru Carry, index register
  1204. ROR     <addr8>         Rotate Right thru Carry, direct
  1205. ROR     ,X              Rotate Right thru Carry, indexed, no offset
  1206. ROR     <addr8>,X       Rotate Right thru Carry, indexed, 1 byte offset
  1207.  
  1208. RSP                     Reset Stack Pointer
  1209. RTI                     Return from Interrupt
  1210. RTS                     Return from Subroutine
  1211.  
  1212. SBC     #<data>         Subtract with Carry, immediate
  1213. SBC     ,X              Subtract with Carry, indexed, no offset
  1214. SBC     <addr8>,X       Subtract with Carry, indexed, 1 byte offset
  1215. SBC     <addr>,X        Subtract with Carry, indexed, 2 byte offset
  1216. SBC     <addr8>         Subtract with Carry, direct
  1217. SBC     <addr>          Subtract with Carry, extended
  1218.  
  1219. SEC                     Set carry bit
  1220. SEI                     Set interrupt Mask bit
  1221.  
  1222. STA     #<data>         Store Acc, immediate
  1223. STA     ,X              Store Acc, indexed, no offset
  1224. STA     <addr8>,X       Store Acc, indexed, 1 byte offset
  1225. STA     <addr>,X        Store Acc, indexed, 2 byte offset
  1226. STA     <addr8>         Store Acc, direct
  1227. STA     <addr>          Store Acc, extended
  1228.  
  1229. STOP                    Enable IRQ, Stop Oscillator
  1230.  
  1231. STX     #<data>         Store Index, immediate
  1232. STX     ,X              Store Index, indexed, no offset
  1233. STX     <addr8>,X       Store Index, indexed, 1 byte offset
  1234. TASM TABLES  Version 2.9                                  Page 24
  1235.  
  1236. STX     <addr>,X        Store Index, indexed, 2 byte offset
  1237. STX     <addr8>         Store Index, direct
  1238. STX     <addr>          Store Index, extended
  1239.  
  1240. SUB     #<data>         Subtract, immediate
  1241. SUB     ,X              Subtract, indexed, no offset
  1242. SUB     <addr8>,X       Subtract, indexed, 1 byte offset
  1243. SUB     <addr>,X        Subtract, indexed, 2 byte offset
  1244. SUB     <addr8>         Subtract, direct
  1245. SUB     <addr>          Subtract, extended
  1246.  
  1247. SWI                     Software Interrupt
  1248.  
  1249. TAX                     Transfer Acc to Index
  1250.  
  1251. TSTA                    Test for neg or zero, accumulator
  1252. TSTX                    Test for neg or zero, index register
  1253. TST     <addr8>         Test for neg or zero, direct
  1254. TST     ,X              Test for neg or zero, indexed, no offset
  1255. TST     <addr8>,X       Test for neg or zero, indexed, 1 byte offset
  1256.  
  1257. TXA                     Transfer Index to Acc
  1258.  
  1259. WAIT                    Enable Interrupt, Stop Processor
  1260.  
  1261. See  the   manufacturer's   data  sheets   for   more   information.
  1262. TASM TABLES  Version 2.9                                  Page 25
  1263.  
  1264. TMS32010 INSTRUCTIONS AND ADDRESSING MODES
  1265.  
  1266. The following list shows the acceptable opcode mnemonics  and  their
  1267. corresponding   operand  formats for the TMS32010   version of TASM.
  1268. The following symbols are used in the table:
  1269.  
  1270.         SYMBOLIC            DESCRIPTION
  1271.         -----------------------------------------------
  1272.         <ar>                Auxiliary register (AR0, AR1)
  1273.         <arp>               Auxiliary register pointer
  1274.         <dma>               Direct memory address
  1275.         <pma>               Program memory address
  1276.         <port>              Port address (0 - 7)
  1277.         <shift>             Shift count  (0 - 15)
  1278.         <const1>            Constant (1 bit)
  1279.         <const8>            Constant (8 bit)
  1280.         <const13>           Constant (13 bit)
  1281.  
  1282. Any valid TASM expression can appear in the  place  of  any  of  the
  1283. above symbolics.
  1284.  
  1285. OPCODE   OPERAND            DESCRIPTION
  1286. --------------------------------------------------------------------
  1287. ABS                         Absolute value of ACC
  1288.  
  1289. ADD      *+,<shift>,<arp>   Add to ACC with shift
  1290. ADD      *-,<shift>,<arp>
  1291. ADD      *, <shift>,<arp>
  1292. ADD      *+,<shift>
  1293. ADD      *-,<shift>
  1294. ADD      *, <shift>
  1295. ADD      *+
  1296. ADD      *-
  1297. ADD      *
  1298. ADD      <dma>,<shift>
  1299. ADD      <dma>
  1300.  
  1301. ADDH     *+,<arp>           Add to high-order ACC bits
  1302. ADDH     *-,<arp>
  1303. ADDH     *, <arp>
  1304. ADDH     *+
  1305. ADDH     *-
  1306. ADDH     *
  1307. ADDH     <dma>
  1308.  
  1309. ADDS     *+,<arp>           Add to ACC with no sign extension
  1310. ADDS     *-,<arp>
  1311. ADDS     *, <arp>
  1312. ADDS     *+
  1313. ADDS     *-
  1314. ADDS     *
  1315. ADDS     <dma>
  1316.  
  1317. AND      *+,<arp>           AND with ACC
  1318. AND      *-,<arp>
  1319. AND      *, <arp>
  1320. TASM TABLES  Version 2.9                                  Page 26
  1321.  
  1322. AND      *+
  1323. AND      *-
  1324. AND      *
  1325. AND      <dma>
  1326.  
  1327. APAC                        Add P register to ACC
  1328.  
  1329. B        <pma>              Branch unconditionally
  1330. BANZ     <pma>              Branch on auxiliary register not zero
  1331. BGEZ     <pma>              Branch if ACC >= 0
  1332. BGZ      <pma>              Branch if ACC >  0
  1333. BIOZ     <pma>              Branch on BIO- = 0
  1334. BLEZ     <pma>              Branch if ACC <= 0
  1335. BLZ      <pma>              Branch if ACC <  0
  1336. BNZ      <pma>              Branch if ACC <> 0
  1337. BV       <pma>              Branch on overflow
  1338. BZ       <pma>              Branch if ACC =  0
  1339.  
  1340. CALA                        Call subroutine from ACC
  1341. CALL     <pma>              Call subroutine at <pma>
  1342.  
  1343. DINT                        Disable interrupt
  1344.  
  1345. DMOV     *+,<arp>           Data move in memory
  1346. DMOV     *-,<arp>
  1347. DMOV     *, <arp>
  1348. DMOV     *+
  1349. DMOV     *-
  1350. DMOV     *
  1351. DMOV     <dma>
  1352.  
  1353. EINT                        Enable Interrupt
  1354.  
  1355. IN       *+,<port> ,<arp>   Input data from port
  1356. IN       *-,<port> ,<arp>
  1357. IN       * ,<port> ,<arp>
  1358. IN       *+,<port>
  1359. IN       *-,<port>
  1360. IN       * ,<port>
  1361. IN       <dma>,<port>
  1362.  
  1363. LAC      *+,<shift>,<arp>   Load ACC with shift
  1364. LAC      *-,<shift>,<arp>
  1365. LAC      *, <shift>,<arp>
  1366. LAC      *+,<shift>
  1367. LAC      *-,<shift>
  1368. LAC      *, <shift>
  1369. LAC      *+
  1370. LAC      *-
  1371. LAC      *
  1372. LAC      <dma>,<shift>
  1373. LAC      <dma>
  1374.  
  1375. LACK     <const8>                   Load ACC with 8 bit constant
  1376.  
  1377. LAR      <ar>,*+,<arp>              Load auxiliary Register
  1378. TASM TABLES  Version 2.9                                  Page 27
  1379.  
  1380. LAR      <ar>,*-,<arp>
  1381. LAR      <ar>,*, <arp>
  1382. LAR      <ar>,*+
  1383. LAR      <ar>,*-
  1384. LAR      <ar>,*
  1385. LAR      <ar>,<dma>
  1386.  
  1387. LARK     <ar>,<const8>              Load aux register with constant
  1388. LARP     <const1>                   Load aux register pointer immed
  1389.  
  1390. LDP      *+,<arp>                   Load data memory page pointer
  1391. LDP      *-,<arp>
  1392. LDP      *, <arp>
  1393. LDP      *+
  1394. LDP      *-
  1395. LDP      *
  1396. LDP      <dma>
  1397.  
  1398. LDPK     <const1>                   Load data page pointer immediate
  1399.  
  1400. LST      *+,<arp>                   Load status from data memory
  1401. LST      *-,<arp>
  1402. LST      *, <arp>
  1403. LST      *+
  1404. LST      *-
  1405. LST      *
  1406. LST      <dma>
  1407.  
  1408. LT       *+,<arp>                   Load T register
  1409. LT       *-,<arp>
  1410. LT       *, <arp>
  1411. LT       *+
  1412. LT       *-
  1413. LT       *
  1414. LT       <dma>
  1415.  
  1416. LTA      *+,<arp>                   Load T register and accumulate
  1417. LTA      *-,<arp>                     product
  1418. LTA      *, <arp>
  1419. LTA      *+
  1420. LTA      *-
  1421. LTA      *
  1422. LTA      <dma>
  1423.  
  1424. LTD      *+,<arp>                   Load T reg, accumulate product,
  1425. LTD      *-,<arp>                     and move
  1426. LTD      *, <arp>
  1427. LTD      *+
  1428. LTD      *-
  1429. LTD      *
  1430. LTD      <dma>
  1431.  
  1432. MAR      *+,<arp>                   Modify auxiliary register
  1433. MAR      *-,<arp>
  1434. MAR      *, <arp>
  1435. MAR      *+
  1436. TASM TABLES  Version 2.9                                  Page 28
  1437.  
  1438. MAR      *-
  1439. MAR      *
  1440. MAR      <dma>
  1441.  
  1442. MPY      *+,<arp>                   Multiply
  1443. MPY      *-,<arp>
  1444. MPY      *, <arp>
  1445. MPY      *+
  1446. MPY      *-
  1447. MPY      *
  1448. MPY      <dma>
  1449.  
  1450. MPYK     <const13>                  Multiply immediate
  1451.  
  1452. NOP                                 No Operation
  1453.  
  1454. OR       *+,<arp>                   OR  with low order bits of ACC
  1455. OR       *-,<arp>
  1456. OR       *, <arp>
  1457. OR       *+
  1458. OR       *-
  1459. OR       *
  1460. OR       <dma>
  1461.  
  1462. OUT      *+,<port>,<arp>            Output data to port
  1463. OUT      *-,<port>,<arp>
  1464. OUT      *, <port>,<arp>
  1465. OUT      *+,<port>
  1466. OUT      *-,<port>
  1467. OUT      *, <port>
  1468. OUT      <dma>,<port>
  1469.  
  1470. PAC                                 Load ACC with P register
  1471. POP                                 Pop top of stack to ACC
  1472. PUSH                                Push ACC onto stack
  1473. RET                                 Return from subroutine
  1474. ROVM                                Reset overflow mode register
  1475.  
  1476. SACH     *+,<shift>,<arp>           Store ACC high with shift
  1477. SACH     *-,<shift>,<arp>             Note: shift can only be 0, 1,
  1478. SACH     *, <shift>,<arp>                   or 4
  1479. SACH     *+,<shift>
  1480. SACH     *-,<shift>
  1481. SACH     *, <shift>
  1482. SACH     *+
  1483. SACH     *-
  1484. SACH     *
  1485. SACH     <dma>,<shift>
  1486. SACH     <dma>
  1487.  
  1488. SACL     *+,<arp>                   Store ACC low
  1489. SACL     *-,<arp>
  1490. SACL     *, <arp>
  1491. SACL     *+
  1492. SACL     *-
  1493. SACL     *
  1494. TASM TABLES  Version 2.9                                  Page 29
  1495.  
  1496. SACL     <dma>
  1497.  
  1498. SAR      <ar>,*+,<arp>              Store auxiliary Register
  1499. SAR      <ar>,*-,<arp>
  1500. SAR      <ar>,*, <arp>
  1501. SAR      <ar>,*+
  1502. SAR      <ar>,*-
  1503. SAR      <ar>,*
  1504. SAR      <ar>,<dma>
  1505.  
  1506. SOVM                                Set overflow mode register
  1507. SPAC                                Subtract P register from ACC
  1508.  
  1509. SST      *+,<arp>                   Store status
  1510. SST      *-,<arp>
  1511. SST      *, <arp>
  1512. SST      *+
  1513. SST      *-
  1514. SST      *
  1515. SST      <dma>
  1516.  
  1517. SUB      *+,<shift>,<arp>           Subtract from ACC with shift
  1518. SUB      *-,<shift>,<arp>
  1519. SUB      *, <shift>,<arp>
  1520. SUB      *+,<shift>
  1521. SUB      *-,<shift>
  1522. SUB      *, <shift>
  1523. SUB      *+
  1524. SUB      *-
  1525. SUB      *
  1526. SUB      <dma>,<shift>
  1527. SUB      <dma>
  1528.  
  1529. SUBC     *+,<arp>                   Conditional subtract
  1530. SUBC     *-,<arp>
  1531. SUBC     *, <arp>
  1532. SUBC     *+
  1533. SUBC     *-
  1534. SUBC     *
  1535. SUBC     <dma>
  1536.  
  1537. SUBH     *+,<arp>                   Subtract from high-order ACC
  1538. SUBH     *-,<arp>
  1539. SUBH     *, <arp>
  1540. SUBH     *+
  1541. SUBH     *-
  1542. SUBH     *
  1543. SUBH     <dma>
  1544.  
  1545. SUBS     *+,<arp>                   Subtract from low ACC with
  1546. SUBS     *-,<arp>                     sign-extension suppressed
  1547. SUBS     *, <arp>
  1548. SUBS     *+
  1549. SUBS     *-
  1550. SUBS     *
  1551. SUBS     <dma>
  1552. TASM TABLES  Version 2.9                                  Page 30
  1553.  
  1554. TBLR     *+,<arp>                   Table Read
  1555. TBLR     *-,<arp>
  1556. TBLR     *, <arp>
  1557. TBLR     *+
  1558. TBLR     *-
  1559. TBLR     *
  1560. TBLR     <dma>
  1561.  
  1562. TBLW     *+,<arp>                   Table Write
  1563. TBLW     *-,<arp>
  1564. TBLW     *, <arp>
  1565. TBLW     *+
  1566. TBLW     *-
  1567. TBLW     *
  1568. TBLW     <dma>
  1569.  
  1570. XOR      *+,<arp>                   Exclusive OR with low bits of ACC
  1571. XOR      *-,<arp>
  1572. XOR      *, <arp>
  1573. XOR      *+
  1574. XOR      *-
  1575. XOR      *
  1576. XOR      <dma>
  1577.  
  1578. ZAC                                 Zero the ACC
  1579.  
  1580. ZALH     *+,<arp>                   Zero ACC and load high
  1581. ZALH     *-,<arp>
  1582. ZALH     *, <arp>
  1583. ZALH     *+
  1584. ZALH     *-
  1585. ZALH     *
  1586. ZALH     <dma>
  1587.  
  1588. ZALS     *+,<arp>                   Zero ACC and load low with
  1589. ZALS     *-,<arp>                     sign extension suppressed
  1590. ZALS     *, <arp>
  1591. ZALS     *+
  1592. ZALS     *-
  1593. ZALS     *
  1594. ZALS     <dma>
  1595.  
  1596. See manufacturer's data for more information.
  1597.  
  1598. TASM TABLES  Version 2.9                                  Page 31
  1599.  
  1600. TMS32025 INSTRUCTIONS AND ADDRESSING MODES
  1601.  
  1602. The following list shows the acceptable opcode mnemonics  and  their
  1603. corresponding   operand  formats for the TMS32025   version of TASM.
  1604. The following symbols are used in the table:
  1605.  
  1606.     SYMBOLIC            DESCRIPTION
  1607.     -----------------------------------------------
  1608.     <ar>                Auxiliary register (AR0, AR1, ...)
  1609.     <arp>               Auxiliary register pointer
  1610.     <nextarp>           Auxiliary register pointer (for next operation)
  1611.     <dma>               Direct memory address
  1612.     <pma>               Program memory address
  1613.     <port>              Port address (0 - 7)
  1614.     <shift>             Shift count  (0 - 15)
  1615.     <const1>            Constant (1 bit)
  1616.     <const2>            Constant (2 bit)
  1617.     <const8>            Constant (8 bit)
  1618.     <const13>           Constant (13 bit)
  1619.     <ind>               Indirect addressing mode indicator
  1620.                                 (see following table)
  1621.  
  1622. Any valid TASM expression can appear in the  place  of  any  of  the
  1623. above symbolics except for <ind>. The <ind> symbolic must be one  of
  1624. the following:
  1625.  
  1626.  
  1627.         <ind>
  1628.         -------
  1629.         *BR0+
  1630.         *BR0-
  1631.         *0+
  1632.         *0-
  1633.         *+
  1634.         *-
  1635.         *
  1636.  
  1637. OPCODE   OPERAND                DESCRIPTION
  1638. --------------------------------------------------------------------
  1639. ABS                             Absolute value of ACC
  1640.  
  1641. ADD  <ind>,<shift>,<nextarp>    Add to ACC with shift
  1642. ADD  <ind>,<shift>
  1643. ADD  <ind>
  1644. ADD  <dma>,<shift>
  1645. ADD  <dma>
  1646.  
  1647. ADDC <ind>,<nextarp>            Add to ACC with carry
  1648. ADDC <ind>
  1649. ADDC <dma>
  1650.  
  1651. ADDH <ind>,<nextarp>            Add to high ACC
  1652. ADDH <ind>
  1653. ADDH <dma>
  1654.  
  1655. ADDK <const8>                   Add to ACC short immediate
  1656. TASM TABLES  Version 2.9                                  Page 32
  1657.  
  1658. ADDS <ind>,<nextarp>            Add to ACC with sign-extension suppressed
  1659. ADDS <ind>
  1660. ADDS <dma>
  1661.  
  1662. ADDT <ind>,<nextarp>            Add to ACC with shift specified by T reg
  1663. ADDT <ind>
  1664. ADDT <dma>
  1665.  
  1666. ADLK <const8>,<shift>           Add to ACC long immediate with shift
  1667. ADLK <const8>
  1668.  
  1669. ADRK <const8>                   Add to aux register short immediate
  1670.  
  1671. AND  <ind>,<nextarp>            And with ACC
  1672. AND  <ind>
  1673. AND  <dma>
  1674.  
  1675. ANDK <const8>,<shift>           And immediate with ACC with shift
  1676. ANDK <const8>
  1677.  
  1678. APAC                            Add P register to ACC
  1679.  
  1680. B    <pma>,<ind>,<nextarp>      Branch unconditionally
  1681. B    <pma>,<ind>
  1682. B    <pma>
  1683.  
  1684. BACC                            Branch to address specified by ACC
  1685.  
  1686. BANZ <pma>,<ind>,<nextarp>      Branch on Aux register not zero
  1687. BANZ <pma>,<ind>
  1688. BANZ <pma>
  1689.  
  1690. BBNZ <pma>,<ind>,<nextarp>      Branch on TC bit not zero
  1691. BBNZ <pma>,<ind>
  1692. BBNZ <pma>
  1693.  
  1694. BBZ  <pma>,<ind>,<nextarp>      Branch on TC bit equal to zero
  1695. BBZ  <pma>,<ind>
  1696. BBZ  <pma>
  1697.  
  1698. BC   <pma>,<ind>,<nextarp>      Branch on carry
  1699. BC   <pma>,<ind>
  1700. BC   <pma>
  1701.  
  1702. BGEZ <pma>,<ind>,<nextarp>      Branch if ACC >= zero
  1703. BGEZ <pma>,<ind>
  1704. BGEZ <pma>
  1705.  
  1706. BGZ  <pma>,<ind>,<nextarp>      Branch if ACC > zero
  1707. BGZ  <pma>,<ind>
  1708. BGZ  <pma>
  1709.  
  1710. BIOZ <pma>,<ind>,<nextarp>      Branch on I/O status = zero
  1711. BIOZ <pma>,<ind>
  1712. BIOZ <pma>
  1713.  
  1714. TASM TABLES  Version 2.9                                  Page 33
  1715.  
  1716. BIT  <ind>,<bitcode>,<nextarp>  Test bit
  1717. BIT  <ind>,<bitcode>
  1718. BIT  <dma>,<bitcode>
  1719.  
  1720. BITT <ind>,<nextarp>            Test bit specified by T register
  1721. BITT <ind>
  1722. BITT <dma>
  1723.  
  1724. BLEZ <pma>,<ind>,<nextarp>      Branch if ACC <= zero
  1725. BLEZ <pma>,<ind>
  1726. BLEZ <pma>
  1727.  
  1728. BLKD <dma>,<ind>,<nextarp>      Block move from data mem to data mem
  1729. BLKD <dma>,<ind>
  1730. BLKD <dma>,<dma>
  1731.  
  1732. BLKP <pma>,<ind>,<nextarp>      Block move from prog mem to data mem
  1733. BLKP <pma>,<ind>
  1734. BLKP <pma>,<dma>
  1735.  
  1736. BLZ  <pma>,<ind>,<nextarp>      Branch if ACC < zero
  1737. BLZ  <pma>,<ind>
  1738. BLZ  <pma>
  1739.  
  1740. BNC  <pma>,<ind>,<nextarp>      Branch on no carry
  1741. BNC  <pma>,<ind>
  1742. BNC  <pma>
  1743.  
  1744. BNV  <pma>,<ind>,<nextarp>      Branch if no overflow
  1745. BNV  <pma>,<ind>
  1746. BNV  <pma>
  1747.  
  1748. BNZ  <pma>,<ind>,<nextarp>      Branch if ACC <> zero
  1749. BNZ  <pma>,<ind>
  1750. BNZ  <pma>
  1751.  
  1752. BV   <pma>,<ind>,<nextarp>      Branch on overflow
  1753. BV   <pma>,<ind>
  1754. BV   <pma>
  1755.  
  1756. BZ   <pma>,<ind>,<nextarp>      Branch if ACC = zero
  1757. BZ   <pma>,<ind>
  1758. BZ   <pma>
  1759.  
  1760. CALA                            Call subroutine indirect
  1761.  
  1762. CALL <pma>,<ind>,<nextarp>      Call subroutine
  1763. CALL <pma>,<ind>
  1764. CALL <pma>
  1765.  
  1766. CMPL                            Complement ACC
  1767. CMPR <const2>                   Compare Aux reg with Aux AR0
  1768. CNFD                            Configure block as data memory
  1769. CNFP                            Configure block as program memory
  1770. CONF <const2>                   Configure block as data/prog memory
  1771. DINT                            Disable interrupt
  1772. TASM TABLES  Version 2.9                                  Page 34
  1773.  
  1774. DMOV <ind>,<nextarp>            Data move in data memory
  1775. DMOV <ind>
  1776. DMOV <dma>
  1777.  
  1778. EINT                            Enable interrupt
  1779.  
  1780. FORT <const1>                   Format serial port registers
  1781.  
  1782. IDLE                            Idle until interrupt
  1783.  
  1784. IN   <ind>,<port>,<nextarp>     Input data from port
  1785. IN   <ind>,<port>
  1786. IN   <dma>,<port>
  1787.  
  1788. LAC  <ind>,<shift>,<nextarp>    Load ACC with shift
  1789. LAC  <ind>,<shift>
  1790. LAC  <ind>
  1791. LAC  <dma>,<shift>
  1792. LAC  <dma>
  1793.  
  1794. LACK <const8>                   Load ACC immediate short
  1795.  
  1796. LACT <ind>,<nextarp>            Load ACC with shift specified by T reg
  1797. LACT <ind>
  1798. LACT <dma>
  1799.  
  1800. LALK <const16>,<shift>          Load ACC long immediate with shift
  1801. LALK <const16>
  1802.  
  1803. LAR  <ar>,<ind>,<nextarp>       Load auxilary register
  1804. LAR  <ar>,<ind>
  1805. LAR  <ar>,<dma>
  1806.  
  1807. LARK <ar>,<const8>              Load auxilary register immediate short
  1808.  
  1809. LARP <arp>                      Load auxilary register pointer
  1810.  
  1811. LDP  <ind>,<nextarp>            Load data memory page pointer
  1812. LDP  <ind>
  1813. LDP  <dma>
  1814.  
  1815. LDPK <const8>                   Load data memory page pointer immediate
  1816.  
  1817. LPH  <ind>,<nextarp>            Load high P register
  1818. LPH  <ind>
  1819. LPH  <dma>
  1820.  
  1821. LRLK <ar>,<const16>             Load auxilary register long immediate
  1822.  
  1823. LST  <ind>,<nextarp>            Load status register ST0
  1824. LST  <ind>
  1825. LST  <dma>
  1826.  
  1827. LST1 <ind>,<nextarp>            Load status register ST1
  1828. LST1 <ind>
  1829. LST1 <dma>
  1830. TASM TABLES  Version 2.9                                  Page 35
  1831.  
  1832. LT   <ind>,<nextarp>            Load T register
  1833. LT   <ind>
  1834. LT   <dma>
  1835.  
  1836. LTA  <ind>,<nextarp>            Load T reg and accumulate prev product
  1837. LTA  <ind>
  1838. LTA  <dma>
  1839.  
  1840. LTD  <ind>,<nextarp>            Load T reg, accum prev product & move
  1841. LTD  <ind>
  1842. LTD  <dma>
  1843.  
  1844. LTP  <ind>,<nextarp>            Load T reg and store P in ACC
  1845. LTP  <ind>
  1846. LTP  <dma>
  1847.  
  1848. LTS  <ind>,<nextarp>            Load T reg, subract previous product
  1849. LTS  <ind>
  1850. LTS  <dma>
  1851.  
  1852. MAC  <pma>,<ind>,<nextarp>      Multiply and accumulate
  1853. MAC  <pma>,<ind>
  1854. MAC  <pma>,<dma>
  1855.  
  1856. MACD <pma>,<ind>,<nextarp>      Multiply and accumulate with data move
  1857. MACD <pma>,<ind>
  1858. MACD <pma>,<dma>
  1859.  
  1860. MAR  <ind>,<nextarp>            Modify auxiliary register
  1861. MAR  <ind>
  1862. MAR  <dma>
  1863.  
  1864. MPY  <ind>,<nextarp>            Multiply
  1865. MPY  <ind>
  1866. MPY  <dma>
  1867.  
  1868. MPYA <ind>,<nextarp>            Multiply and accum previous product
  1869. MPYA <ind>
  1870. MPYA <dma>
  1871.  
  1872. MPYK <const13>                  Multiply immediate
  1873.  
  1874. MPYS <ind>,<nextarp>            Multiply and subtract previous product
  1875. MPYS <ind>
  1876. MPYS <dma>
  1877.  
  1878. MPYU <ind>,<nextarp>            Multiply unsigned
  1879. MPYU <ind>
  1880. MPYU <dma>
  1881.  
  1882. NEG                             Negate ACC
  1883.  
  1884. NOP                             No operation
  1885.  
  1886. NORM <ind>                      Normalize contents of ACC
  1887. NORM
  1888. TASM TABLES  Version 2.9                                  Page 36
  1889.  
  1890. OR   <ind>,<nextarp>            Or with ACC
  1891. OR   <ind>
  1892. OR   <dma>
  1893.  
  1894. ORK  <dma>,<shift>              Or immediate with ACC with shift
  1895. ORK  <dma>
  1896.  
  1897. OUT  <ind>,<shift>,<nextarp>    Output data to port
  1898. OUT  <ind>,<shift>
  1899. OUT  <dma>,<shift>
  1900.  
  1901. PAC                             Load ACC with P register
  1902.  
  1903. POP                             Pop top of stack to low ACC
  1904.  
  1905. POPD <ind>,<nextarp>            Pop top of stack to data memory
  1906. POPD <ind>
  1907. POPD <dma>
  1908.  
  1909. PSHD <ind>,<nextarp>            Push data memory value onto stack
  1910. PSHD <ind>
  1911. PSHD <dma>
  1912.  
  1913. PUSH                            Push low ACC onto stack
  1914. RC                              Reset carry bit
  1915. RET                             Return from subroutine
  1916. RFSM                            Reset serial port frame syn mode
  1917. RHM                             Reset hold mode
  1918. ROL                             Rotate ACC left
  1919. ROR                             Rotate ACC right
  1920. ROVM                            Reset overflow mode
  1921.  
  1922. RPT  <ind>,<nextarp>            Repeat instructions as per data mem
  1923. RPT  <ind>
  1924. RPT  <dma>
  1925.  
  1926. RPTK <const8>                   Repeat instructions as per immediate
  1927.  
  1928. RSXM                            Reset sign extension mode
  1929. RTC                             Reset test control flag
  1930. RTXM                            Reset serial port transmit mode
  1931. RXF                             Reset external flag
  1932.  
  1933. SACH <ind>,<shift>,<nextarp>    Store high ACC with shift
  1934. SACH <ind>,<shift>
  1935. SACH <ind>
  1936. SACH <dma>,<shift>
  1937. SACH <dma>
  1938.  
  1939. SACL <ind>,<shift>,<nextarp>    Store low ACC with shift
  1940. SACL <ind>,<shift>
  1941. SACL <ind>
  1942. SACL <dma>,<shift>
  1943. SACL <dma>
  1944.  
  1945. SAR  <ar>,<ind>,<nextarp>       Store AUX register
  1946. TASM TABLES  Version 2.9                                  Page 37
  1947.  
  1948. SAR  <ar>,<ind>
  1949. SAR  <ar>,<dma>
  1950.  
  1951. SBLK <const16>,<shift>          Subtract from ACC long immediate with shift
  1952. SBLK <const16>
  1953.  
  1954. SBRK <const8>                   Subtract from AUX register short immediate
  1955.  
  1956. SC                              Set carry bit
  1957. SFL                             Shift ACC left
  1958. SFR                             Shift ACC right
  1959. SFSM                            Set serial port frame sync mode
  1960. SHM                             Set hold mode
  1961. SOVM                            Set overflow mode
  1962. SPAC                            Subtract P register from ACC
  1963.  
  1964. SPH  <ind>,<nextarp>            Store high P register
  1965. SPH  <ind>
  1966. SPH  <dma>
  1967.  
  1968. SPL  <ind>,<nextarp>            Store low P register
  1969. SPL  <ind>
  1970. SPL  <dma>
  1971.  
  1972. SPM  <dma>                      Set P register output shift mode
  1973.  
  1974. SQRA <ind>,<nextarp>            Square and accumulate previous product
  1975. SQRA <ind>
  1976. SQRA <dma>
  1977.  
  1978. SQRS <ind>,<nextarp>            Square and subtract previous product
  1979. SQRS <ind>
  1980. SQRS <dma>
  1981.  
  1982. SST  <ind>,<nextarp>            Store status register ST0
  1983. SST  <ind>
  1984. SST  <dma>
  1985.  
  1986. SST1 <ind>,<nextarp>            Store status register ST1
  1987. SST1 <ind>
  1988. SST1 <dma>
  1989.  
  1990. SSXM                            Set sign extension mode
  1991. STC                             Set test/control flag
  1992. STXM                            Set serial port transmit mode
  1993.  
  1994.  
  1995. SUB  <ind>,<shift>,<nextarp>    Subtract from ACC with shift
  1996. SUB  <ind>,<shift>
  1997. SUB  <ind>
  1998. SUB  <dma>,<shift>
  1999. SUB  <dma>
  2000.  
  2001. SUBB <ind>,<nextarp>            Subtract from ACC with borrow
  2002. SUBB <ind>
  2003. SUBB <dma>
  2004. TASM TABLES  Version 2.9                                  Page 38
  2005.  
  2006. SUBC <ind>,<nextarp>            Subtract conditional
  2007. SUBC <ind>
  2008. SUBC <dma>
  2009.  
  2010. SUBH <ind>,<nextarp>            Subtract from high ACC
  2011. SUBH <ind>
  2012. SUBH <dma>
  2013.  
  2014. SUBK <const8>                   Subtract from ACC short immediate
  2015.  
  2016. SUBS <ind>,<nextarp>            Subtract from low ACC without sign-extension
  2017. SUBS <ind>
  2018. SUBS <dma>
  2019.  
  2020. SUBT <ind>,<nextarp>            Subtract from ACC with shift as per T reg
  2021. SUBT <ind>
  2022. SUBT <dma>
  2023.  
  2024. SXF                             Set external flag
  2025.  
  2026. TBLR <ind>,<nextarp>            Table read
  2027. TBLR <ind>
  2028. TBLR <dma>
  2029.  
  2030. TBLW <ind>,<nextarp>            Table write
  2031. TBLW <ind>
  2032. TBLW <dma>
  2033.  
  2034. TRAP                            Software interrupt
  2035.  
  2036. XOR  <ind>,<nextarp>            Exclusive OR with ACC
  2037. XOR  <ind>
  2038. XOR  <dma>
  2039.  
  2040. XORK<dma>,<shift>               Exclusive OR immediate ACC with shift
  2041. XORK <dma>
  2042.  
  2043. ZAC                             Zero ACC
  2044.  
  2045. ZALH <ind>,<nextarp>            Zero low ACC and load high ACC
  2046. ZALH <ind>
  2047. ZALH <dma>
  2048.  
  2049. ZALR <ind>,<nextarp>            Zero low ACC, load high ACC with rounding
  2050. ZALR <ind>
  2051. ZALR <dma>
  2052.  
  2053. ZALS <ind>,<nextarp>            Zero ACC, load low ACC without sign-extension
  2054. ZALS <ind>
  2055. ZALS <dma>
  2056.  
  2057. TASM TABLES  Version 2.9                                  Page 39
  2058.  
  2059. TMS7000 INSTRUCTIONS AND ADDRESSING MODES
  2060.  
  2061. The following list shows the acceptable opcode mnemonics  and  their
  2062. corresponding  operand  formats for the TMS7000 version of TASM.
  2063. The following symbolic fields used in the table:
  2064.  
  2065.     SYMBOLIC        DESCRIPTION
  2066.     -------------------------------------------
  2067.     <iop>           Immediate data (8 bits)
  2068.     <Rn>            Register file (memory locations 0 to 127 or
  2069.                        0 to 255 depending on on-chip RAM)
  2070.     <Pn>            Peripheral file (0-255)
  2071.     <rel>           Program address (relative)
  2072.     <addr>          Program address (16 bit)
  2073.     <trap>          Trap number (0-23)
  2074.  
  2075. Any valid TASM expression can appear in the  place  of  any  of  the
  2076. above symbolics.
  2077.  
  2078. Note that TASM allows an alternate syntax for expressing
  2079. indirection.  Parenthesis can be replaced with brackets (which are
  2080. less ambiguous because they do not occur in expressions).  Thus, the
  2081. following are equivalent:
  2082.  
  2083.     BR      @addr1(B)
  2084.     BR      @addr1[B]
  2085.  
  2086.  
  2087. OPCODE  OPERANDS
  2088. ---------------------------------------
  2089. ADC    B,A
  2090. ADC    %<iop>,A
  2091. ADC    %<iop>,B
  2092. ADC    %<iop>,<Rn>
  2093. ADC    <Rn>,A
  2094. ADC    <Rn>,B
  2095. ADC    <Rn>,<Rn>
  2096.  
  2097. ADD    B,A
  2098. ADD    %<iop>,A
  2099. ADD    %<iop>,B
  2100. ADD    %<iop>,<Rn>
  2101. ADD    <Rn>,A
  2102. ADD    <Rn>,B
  2103. ADD    <Rn>,<Rn>
  2104.  
  2105. AND    B,A
  2106. AND    %<iop>,A
  2107. AND    %<iop>,B
  2108. AND    %<iop>,<Rn>
  2109. AND    <Rn>,A
  2110. AND    <Rn>,B
  2111. AND    <Rn>,<Rn>
  2112.  
  2113. ANDP   A,<Pn>
  2114. ANDP   B,<Pn>
  2115. TASM TABLES  Version 2.9                                  Page 40
  2116.  
  2117. ANDP   %<iop>,<Pn>
  2118.  
  2119. BTJO   B,A,<rel>
  2120. BTJO   %<iop>,A,<rel>
  2121. BTJO   %<iop>,B,<rel>
  2122. BTJO   %<iop>,<Rn>,<rel>
  2123. BTJO   <Rn>,A,<rel>
  2124. BTJO   <Rn>,B,<rel>
  2125. BTJO   <Rn>,<Rn>,<rel>
  2126.  
  2127. BTJOP  A,<Pn>,<rel>
  2128. BTJOP  B,<Pn>,<rel>
  2129. BTJOP  %<iop>,<Pn>,<rel>
  2130.  
  2131. BTJZ   B,A,<rel>
  2132. BTJZ   %<iop>,A,<rel>
  2133. BTJZ   %<iop>,B,<rel>
  2134. BTJZ   %<iop>,<Rn>,<rel>
  2135. BTJZ   <Rn>,A,<rel>
  2136. BTJZ   <Rn>,B,<rel>
  2137. BTJZ   <Rn>,<Rn>,<rel>
  2138.  
  2139. BTJZP  A,<Pn>,<rel>
  2140. BTJZP  B,<Pn>,<rel>
  2141. BTJZP  %<iop>,<Pn>,<rel>
  2142.  
  2143. BR      @<addr>(B)
  2144. BR      @<addr>[B]
  2145. BR      @<addr>
  2146. BR      *<Rn>
  2147.  
  2148. CALL    @<addr>(B)
  2149. CALL    @<addr>[B]
  2150. CALL    @<addr>
  2151. CALL    *<Rn>
  2152.  
  2153. CLR     A
  2154. CLR     B
  2155. CLR     <Rn>
  2156. CLRC
  2157.  
  2158. CMP     B,A
  2159. CMP     %<iop>,A
  2160. CMP     %<iop>,B
  2161. CMP     %<iop>,<Rn>
  2162. CMP     <Rn>,A
  2163. CMP     <Rn>,B
  2164. CMP     <Rn>,<Rn>
  2165.  
  2166. CMPA    @<addr>(B)
  2167. CMPA    @<addr>[B]
  2168. CMPA    @<addr>
  2169. CMPA    *<Rn>
  2170.  
  2171. DAC     B,A
  2172. DAC     %<iop>,A
  2173. TASM TABLES  Version 2.9                                  Page 41
  2174.  
  2175. DAC     %<iop>,B
  2176. DAC     %<iop>,<Rn>
  2177. DAC     <Rn>,A
  2178. DAC     <Rn>,B
  2179. DAC     <Rn>,<Rn>
  2180.  
  2181. DEC     A
  2182. DEC     B
  2183. DEC     <Rn>
  2184.  
  2185. DECD    A
  2186. DECD    B
  2187. DECD    <Rn>
  2188.  
  2189. DINT
  2190.  
  2191. DJNZ    A,<rel>
  2192. DJNZ    B,<rel>
  2193. DJNZ    <Rn>,<rel>
  2194.  
  2195. DSB     B,A
  2196. DSB     %<iop>,A
  2197. DSB     %<iop>,B
  2198. DSB     %<iop>,<Rn>
  2199. DSB     <Rn>,A
  2200. DSB     <Rn>,B
  2201. DSB     <Rn>,<Rn>
  2202.  
  2203. EINT
  2204. IDLE
  2205.  
  2206. INC     A
  2207. INC     B
  2208. INC     <Rn>
  2209.  
  2210. INV     A
  2211. INV     B
  2212. INV     <Rn>
  2213.  
  2214. JMP     <rel>
  2215.  
  2216. JC      <rel>
  2217. JEQ     <rel>
  2218. JGE     <rel>
  2219. JGT     <rel>
  2220. JHS     <rel>
  2221. JL      <rel>
  2222. JN      <rel>
  2223. JNC     <rel>
  2224. JNE     <rel>
  2225. JNZ     <rel>
  2226. JP      <rel>
  2227. JPZ     <rel>
  2228. JZ      <rel>
  2229.  
  2230. LDA     @<addr>(B)
  2231. TASM TABLES  Version 2.9                                  Page 42
  2232.  
  2233. LDA     @<addr>[B]
  2234. LDA     @<addr>
  2235. LDA     *<Rn>
  2236.  
  2237. LDSP
  2238.  
  2239. MOV     A,B
  2240. MOV     B,A
  2241. MOV     A,<Rn>
  2242. MOV     B,<Rn>
  2243. MOV     %<iop>,A
  2244. MOV     %<iop>,B
  2245. MOV     %<iop>,<Rn>
  2246. MOV     <Rn>,A
  2247. MOV     <Rn>,B
  2248. MOV     <Rn>,<Rn>
  2249.  
  2250. MOVD    %<iop>[B],<Rn>
  2251. MOVD    %<iop>,<Rn>
  2252. MOVD    <Rn>,<Rn>
  2253.  
  2254. MOVP    A,<Pn>
  2255. MOVP    B,<Pn>
  2256. MOVP    %<iop>,<Pn>
  2257. MOVP    <Pn>,A
  2258. MOVP    <Pn>,B
  2259.  
  2260. MPY     B,A
  2261. MPY     %<iop>,A
  2262. MPY     %<iop>,B
  2263. MPY     %<iop>,<Rn>
  2264. MPY     <Rn>,A
  2265. MPY     <Rn>,B
  2266. MPY     <Rn>,<Rn>
  2267.  
  2268. NOP
  2269.  
  2270. OR      B,A
  2271. OR      %<iop>,A
  2272. OR      %<iop>,B
  2273. OR      %<iop>,<Rn>
  2274. OR      <Rn>,A
  2275. OR      <Rn>,B
  2276. OR      <Rn>,<Rn>
  2277.  
  2278. ORP     A,<Pn>
  2279. ORP     B,<Pn>
  2280. ORP     %<iop>,<Pn>
  2281.  
  2282. POP     A
  2283. POP     B
  2284. POP     ST
  2285. POP     <Rn>
  2286. POPST
  2287.  
  2288. PUSH    A
  2289. TASM TABLES  Version 2.9                                  Page 43
  2290.  
  2291. PUSH    B
  2292. PUSH    ST
  2293. PUSH    <Rn>
  2294. PUSHST
  2295.  
  2296. RETI
  2297.  
  2298. RETS
  2299.  
  2300. RL      A
  2301. RL      B
  2302. RL      <Rn>
  2303.  
  2304. RLC     A
  2305. RLC     B
  2306. RLC     <Rn>
  2307.  
  2308. RR      A
  2309. RR      B
  2310. RR      <Rn>
  2311.  
  2312. RRC     A
  2313. RRC     B
  2314. RRC     <Rn>
  2315.  
  2316. SBB     B,A
  2317. SBB     %<iop>,A
  2318. SBB     %<iop>,B
  2319. SBB     %<iop>,<Rn>
  2320. SBB     <Rn>,A
  2321. SBB     <Rn>,B
  2322. SBB     <Rn>,<Rn>
  2323.  
  2324. SETC
  2325.  
  2326. STA     @<addr>(B)
  2327. STA     @<addr>[B]
  2328. STA     @<addr>
  2329. STA     *<Rn>
  2330.  
  2331. STSP
  2332.  
  2333. SUB     B,A
  2334. SUB     %<iop>,A
  2335. SUB     %<iop>,B
  2336. SUB     %<iop>,<Rn>
  2337. SUB     <Rn>,A
  2338. SUB     <Rn>,B
  2339. SUB     <Rn>,<Rn>
  2340.  
  2341. SWAP    A
  2342. SWAP    B
  2343. SWAP    <Rn>
  2344.  
  2345. TRAP    <trap>
  2346.  
  2347. TASM TABLES  Version 2.9                                  Page 44
  2348.  
  2349. TST     A
  2350. TSTA
  2351. TST     B
  2352. TSTB
  2353.  
  2354. XCHB    A
  2355. XCHB    <Rn>
  2356.  
  2357. XOR     B,A
  2358. XOR     %<iop>,A
  2359. XOR     %<iop>,B
  2360. XOR     %<iop>,<Rn>
  2361. XOR     <Rn>,A
  2362. XOR     <Rn>,B
  2363. XOR     <Rn>,<Rn>
  2364.  
  2365. XORP    A,<Pn>
  2366. XORP    B,<Pn>
  2367. XORP    %<iop>,<Pn>
  2368.  
  2369. TASM TABLES  Version 2.9                                  Page 45
  2370.  
  2371. BUILDING TASM FROM THE SOURCE CODE
  2372.  
  2373. The TASM   executable  can be  built  using from  the source  if  so
  2374. desired.  The first step is to extract the source archive:
  2375.  
  2376.         BOOZ TASMSRC.ZOO
  2377.  
  2378. Next, use the appropriate MAKEFILE to perform the build:
  2379.  
  2380. For Microsoft make:
  2381.  
  2382.         COPY MAKEFILE.MSC   MAKEFILE
  2383.         NMAKE
  2384.  
  2385.  
  2386. For Turbo make:
  2387.  
  2388.         COPY MAKEFILE.TC    MAKEFILE
  2389.         MAKE
  2390.  
  2391. TASM TABLES  Version 2.9                                  Page 46
  2392.  
  2393. TASM INSTRUCTION SET TABLE DEFINITION
  2394.  
  2395. The tables that control TASM's interpretation of the source file are
  2396. read from a file at run time.  The table file name is determined  by
  2397. taking  the  numeric option field specified on the TASM command line
  2398. and appending it to the string "TASM", then a  ".TAB"  extension  is
  2399. added.  Thus, if the following command line is entered:
  2400.  
  2401.         tasm -51  test.asm
  2402.  
  2403. then TASM would read the table file named "TASM51.TAB".
  2404.  
  2405.  
  2406. The following rules apply to the structure of the table file:
  2407.  
  2408.         1.  The  first  line  of  the  file  should contain a string
  2409.                 surrounded by double quotes that should identify the
  2410.                 version of the assembler  table.  This  string  will
  2411.                 appear at the top of each page in the list file.  It
  2412.                 should be limited to 24 characters.
  2413.         2.  Any line that starts with a '.' is considered a directive.
  2414.                 The following directives are available:
  2415.  
  2416.                 DIRECTIVE       MEANING
  2417.                 ----------------------------------------------------
  2418.                 MSFIRST         Generate opcodes MS byte first.
  2419.  
  2420.                 ALTWILD         Use '@' instead of '*' as the
  2421.                                 wild card in the table.
  2422.  
  2423.                 NOARGSHIFT      Suppress the shift/or operation that
  2424.                                 applies if the optional SHIFT and OR
  2425.                                 fields are provided.
  2426.  
  2427.                 REGSET          Define a register mnemonic and
  2428.                                 associated bit field.
  2429.  
  2430.                 WORDADDRS       Set word addressing mode (one word =
  2431.                                 2 bytes)
  2432.  
  2433.         3.  Any   line  whose  first  character  is not a '.' and is
  2434.                 not  alphabetic is considered to be a comment and is
  2435.                 discarded.
  2436.  
  2437.         4.  Any  line  that has an alphabetic character as the first
  2438.                 character is assumed to be an instruction definition
  2439.                 record  and  is  parsed  to   build   the   internal
  2440.                 representation   of   the  instruction  set  tables.
  2441.                 Eight  fields   (separated  by  white  space)    are
  2442.                 expected,  as follows:
  2443.  
  2444. TASM TABLES  Version 2.9                                  Page 47
  2445.  
  2446.                 Field Name      Description
  2447.                 --------------------------------------------
  2448.                 INSTRUCTION     Instruction Mnemonic
  2449.                 ARGS            Argument definition
  2450.                 OPCODE          Opcode value
  2451.                 NBYTES          Number of bytes
  2452.                 MODOP           Modifier operation
  2453.                 CLASS           Instruction class
  2454.                 SHIFT           Argument left shift count
  2455.                 OR              Argument bitwise OR mask
  2456.  
  2457.                 INSTRUCTION.  The  INSTRUCTION  field should contain
  2458.                 the string to be  used  as  the  mnemonic  for  this
  2459.                 instruction.  Upper case letters should be used (the
  2460.                 source statements are converted to upper case before
  2461.                 comparison).
  2462.  
  2463.  
  2464.                 ARGS.   The  ARGS  field  should  contain  a  string
  2465.                 describing  the  format  of  the operand field.  All
  2466.                 characters are taken literally except the '*'  which
  2467.                 denotes  the  presence  of  a valid TASM expression.
  2468.                 Multiple '*'s can be used,  but all but the last one
  2469.                 must  be  followed  by  a  comma.  If  a  single '*'
  2470.                 appears in the ARGS field,  then the default  action
  2471.                 of  TASM  will  be  to  determine  the  value of the
  2472.                 expression that matches the field and insert one  or
  2473.                 two  bytes  of  it into the object file depending on
  2474.                 the NBYTES field.  If multiple '*'s are  used,  then
  2475.                 special  operators  (MODOP)  must  be  used  to take
  2476.                 advantage of them (see the examples below).  An ARGS
  2477.                 field of a pair  of  double  quotes  means  that  no
  2478.                 arguments are expected.
  2479.  
  2480.  
  2481.                 OPCODE.  The OPCODE field should contain the  opcode
  2482.                 value    (two  to  six  hex   digits)   for   this
  2483.                 instruction  and  address mode.   Each pair  of  hex
  2484.                 digits  represent  a  single  byte  of  the  opcode,
  2485.                 ordered with the right most pair being placed in the
  2486.                 lowest memory location.
  2487.  
  2488.  
  2489.                 NBYTES.  The NBYTES field should specify the  number
  2490.                 of  bytes  this  instruction  is to occupy (a single
  2491.                 decimal  digit).   This number includes both  opcode
  2492.                 bytes and argument bytes, thus,  the number of bytes
  2493.                 of argument is computed by subtracting the number of
  2494.                 bytes  of  opcode  (dictated by the  length  of  the
  2495.                 OPCODE field) from NBYTES.
  2496.  
  2497.  
  2498.                 MODOP.  The MODOP field determines  if  any  special
  2499.                 operations   need   to  be  performed  on  the  code
  2500.                 generated for this  instruction.  For  example,  the
  2501.                 zero-page  addressing  mode of the 6502 is a special
  2502. TASM TABLES  Version 2.9                                  Page 48
  2503.  
  2504.                 case of the absolute addressing mode, and is handled
  2505.                 by a special MODOP code (see appendix B).  The  list
  2506.                 of operators is as follows:
  2507.  
  2508.  
  2509.                 MODOP       DESCRIPTION
  2510.                 ---------------------------------------------------
  2511.                 NOTOUCH     Do nothing to instruction or args
  2512.                 JMPPAGE     Put bits 8-10 of first arg into
  2513.                             bits 5-7 of opcode (8048 JMP)
  2514.                 ZPAGE       If arg < 256 then use zero-page (6502)
  2515.                 R1          Make arg relative to PC (single byte)
  2516.                 R2          Make arg relative to PC (two byte)
  2517.                 CREL        Combine LS bytes of first two args
  2518.                             making the second one relative to PC
  2519.                 SWAP        Swap bytes of first arg
  2520.                 COMBINE     Combine LS bytes of first two args into
  2521.                             first arg (arg1 -> LSB, arg2 ->MSB).
  2522.                 CSWAP       Combine LS bytes of first two args into
  2523.                             first arg and swap.
  2524.                 ZBIT        Z80 bit instructions.
  2525.                 MBIT        Motorola (6805) bit instructions
  2526.                 MZERO       Motorola (6805) zero page (direct)
  2527.                 3ARG        Three args, one byte each.
  2528.                 3REL        Three args, one byte each, last one
  2529.                             relative
  2530.                 T1          TMS320 instruction with one arg.  Shift
  2531.                             according to SHIFT and mask with OR and
  2532.                             OR into opcode.  If a second arg exists
  2533.                             assume it is an <arp> and OR into   LSB
  2534.                             of opcode.
  2535.                 TDMA        TMS320 instruction with first arg <dma>.
  2536.                             Second arg gets shift/and/or  treatment
  2537.                             as with T1.
  2538.                 TAR         TMS320 instruction with first arg <ar>.
  2539.                             Second arg gets shift/and/or  treatment
  2540.                             as with T1.
  2541.  
  2542.                 Note  that the reason for the combining of arguments
  2543.                 (COMBINE and CSWAP) is that TASM  assumes  that  all
  2544.                 object  bytes  to be inserted in the object file are
  2545.                 derived from a variable representing  the  value  of
  2546.                 the  first  argument (argval).  If two arguments are
  2547.                 in the  ARGS  field,  then  one  of  the  previously
  2548.                 mentioned  MODOP`s  must  be  used.  They  have  the
  2549.                 effect of combining the low bytes of the  first  two
  2550.                 arguments  into the variable (argval) from which the
  2551.                 object  code  will  be  generated.  TASM`s  argument
  2552.                 parsing   routine  can  handle  a  large  number  of
  2553.                 arguments,  but the code that generates  the  object
  2554.                 code is less capable.
  2555.  
  2556.                 CLASS.  The  CLASS  field is used to specify whether
  2557.                 this instruction is part of the standard instruction
  2558.                 set or a member of a set of  extended  instructions.
  2559.                 Bit 0 of this field should be set to denote a member
  2560. TASM TABLES  Version 2.9                                  Page 49
  2561.  
  2562.                 of  the standard instruction set.  Other bits can be
  2563.                 used as needed  to  establish  several  classes  (or
  2564.                 sets)   of  instructions  that  can  be  enabled  or
  2565.                 disabled via  the  '-x'  command  line  option  (see
  2566.                 section on 6502 INSTRUCTIONS AND ADDRESSING MODES).
  2567.  
  2568.                 SHIFT (optional).   The SHIFT field is used to cause
  2569.                 the  first  argument of the given instruction to  be
  2570.                 shifted left the specified number of bits.   (Except
  2571.                 T1, TDMA, TAR MODOPS as noted below).
  2572.  
  2573.                 OR  (optional).   The OR field is used to perform  a
  2574.                 bitwise  OR  with  the first argument of  the  given
  2575.                 instruction.  Specified as hex digits.  (Except  T1,
  2576.                 TDMA, TAR MODOPS as noted below).
  2577.  
  2578. Note that the SHIFT/OR fields are used somewhat differently for  T1,
  2579. TDMA,  and TAR MODOPS.  In those cases,  the SHIFT and OR fields are
  2580. used  but the OR field is really an AND mask and the result is  OR'd
  2581. with the opcode.
  2582.  
  2583. The   following  table   shows   possible    instruction  definition
  2584. records,  followed  by  possible  source statements that would match
  2585. it,    followed by the resulting object code that would be generated
  2586. (in hex):
  2587.                                           EXAMPLE         EXAMPLE
  2588. INSTRUCTION DEFINITION                    SOURCE          OBJECT
  2589. -------------------------------------------------------------------
  2590. XYZ  *      FF   3  NOTOUCH 1             xyz 1234h       FF 34 12
  2591. XYZ  *      FF   2  NOTOUCH 1             xyz 1234h       FF 34
  2592. ZYX  *      FE   3  SWAP    1             zyx 1234h       FE 12 34
  2593. ZYX  *      FE   3  R2      1             zyx $+4         FE 01 00
  2594. ABC  *,*    FD   3  COMBINE 1             abc 45h,67h     FD 45 67
  2595. ABC  *,*    FD   3  CSWAP   1             abc 45h,67h     FD 67 45
  2596. ADD  A,#*   FC   2  NOTOUCH 1             add A,#'B'      FC 42
  2597. RET  ""     FB   1  NOTOUCH 1             ret             FB
  2598. LD   IX,*   21DD 4  NOTOUCH 1             ld  IX,1234h    DD 21 34 12
  2599. LD   IX,*   21DD 4  NOTOUCH 1 1 0         ld  IX,1234h    DD 21 68 24
  2600. LD   IX,*   21DD 4  NOTOUCH 1 0 1         ld  IX,1234h    DD 21 35 12
  2601. LD   IX,*   21DD 4  NOTOUCH 1 1 1         ld  IX,1234h    DD 21 69 24
  2602. LD   IX,*   21DD 4  NOTOUCH 1 8 12        ld  IX,34h      DD 21 12 34
  2603.  
  2604. The  order  of  the  entries for various addressing modes of a given
  2605. instruction is important.  Since the wild card matches anything,  it
  2606. is  important to specify the ARGS for the addressing modes that have
  2607. the  most  qualifying  characters  first.   For   example,   if   an
  2608. instruction  had  two  addressing  modes,   one  that  accepted  any
  2609. expression,  and another that required a pound sign in front  of  an
  2610. expression,  the  pound  sign  entry  should  go first otherwise all
  2611. occurrences of the instruction would match  the  more  general  ARGS
  2612. expression   that  it  encountered  first.   The  following  entries
  2613. illustrate the proper sequencing:
  2614.  
  2615.         ADD #*  12 3 NOTOUCH 1
  2616.         ADD *   13 3 NOTOUCH 1
  2617.  
  2618.  
  2619.